您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Force Enable right click & Copy & Highlight
当前为
- // ==UserScript==
- // @name Absolute Enable Right Click & Copy Massive
- // @namespace Absolute Right Click
- // @description Force Enable right click & Copy & Highlight
- // @author Absolute
- // @version 1.2.3
- // @include http*://*
- // @icon https://cdn3.iconfinder.com/data/icons/communication-130/63/cursor-128.png
- // @license BSD
- // @copyright Absolute
- // @grant GM_addStyle
- // @Exclude /.*(JPG|PNG|GIF|JPEG|ico|bing|facebook|google|pixiv).*/
- // ==/UserScript==
- var Sites_List = ['163.com','www.site.com','www.site.com','www.site.com','www.site.com'];
- (function GetSelection () {
- var style = document.createElement('style');
- var iStyle = '*{user-select: text !important;-webkit-user-select:text!important;}';
- style.type = 'text/css';
- if (style.styleSheet) { style.styleSheet.cssText = iStyle; }
- else { style.appendChild(document.createTextNode(iStyle)); }
- window.getSelection = null;
- document.oncontextmenu = null;
- document.body.setAttribute('oncopy','null');
- document.body.setAttribute('oncut','null');
- document.getElementsByTagName('head')[0].appendChild(style);
- })();
- function Check (event) {
- if (event.stopPropagation) {
- event.stopPropagation();
- }}
- var events = ['NO-contextmenu','selectstart'];
- for (var i = 0; i < events.length; i++) {
- document['on'+events[i]] = Check;
- document.addEventListener(events[i], Check, true, true);
- }
- (function RightClickButton() {
- function Mutation (callback) {
- this.isCalled = false;
- this.isUnbound = false;
- this.callback = callback;
- this.events = ['DOMAttrModified', 'DOMNodeInserted', 'DOMNodeRemoved', 'DOMCharacterDataModified', 'DOMSubtreeModified'];
- this.bind();
- }
- Mutation.prototype.bind = function () {
- this.events.forEach(function (name) {
- document.addEventListener(name, this, true);
- }.bind(this));
- };
- Mutation.prototype.handleEvent = function () {
- this.isCalled = true;
- this.unbind();
- };
- Mutation.prototype.unbind = function () {
- if (this.isUnbound) {
- return;
- }
- this.events.forEach(function (name) {
- document.removeEventListener(name, this, true);
- }.bind(this));
- this.isUnbound = true;
- };
- function Synchronizetion () {
- this._setTimeout = window.setTimeout;
- this._requestAnimationFrame = window.requestAnimationFrame;
- this._Promise = window.Promise;
- this.isRestoration = false;
- this.calledPromise = false;
- window.requestAnimationFrame = window.setTimeout = function (callback) {
- callback();
- };
- window.Promise = function () {
- this._Promise.apply(this, arguments);
- this.calledPromise = true;
- window.Promise = this._Promise;
- };}
- Synchronizetion.prototype.restore = function () {
- if (this.isRestoration) { return; }
- window.setTimeout = this._setTimeout;
- window.requestAnimationFrame = this._requestAnimationFrame;
- if (!this.calledPromise) {
- window.Promise = this._Promise;
- }
- this.isRestoration = true;
- };
- function EventHandler (event) {
- this.event = event;
- this.contextmenuEvent = this.createEvent(this.event.type);
- this.mouseupEvent = this.createEvent('mouseup');
- this.isCanceled = this.contextmenuEvent.defaultPrevented;
- }
- EventHandler.prototype.createEvent = function (type) {
- var target = this.event.target;
- var event = target.ownerDocument.createEvent('MouseEvents');
- event.initMouseEvent(type, this.event.bubbles, this.event.cancelable,
- target.ownerDocument.defaultView, this.event.detail,
- this.event.screenX, this.event.screenY, this.event.clientX, this.event.clientY,
- this.event.ctrlKey, this.event.altKey, this.event.shiftKey, this.event.metaKey,
- this.event.button, this.event.relatedTarget
- );return event;
- };
- EventHandler.prototype.fire = function () {
- var target = this.event.target;
- var contextmenuHandler = function (event) {
- this.isCanceled = event.defaultPrevented;
- event.preventDefault();
- }.bind(this);
- window.addEventListener(this.event.type, contextmenuHandler, false);
- target.dispatchEvent(this.contextmenuEvent);
- window.removeEventListener(this.event.type, contextmenuHandler, false);
- this.isCanceled = this.contextmenuEvent.defaultPrevented;
- target.dispatchEvent(this.mouseupEvent);
- };
- var disableRightClick = false;
- window.addEventListener('message', function (event) {
- if (event.data.type !== 'enable-right-click') { return; }
- disableRightClick = !!event.data.disableRightClick;
- event.stopPropagation();
- event.stopImmediatePropagation();
- }, true);
- window.addEventListener('contextmenu', handleEvent, true);
- function handleEvent (event) {
- if (disableRightClick) { return; }
- event.stopPropagation();
- event.stopImmediatePropagation();
- var handler = new EventHandler(event);
- window.removeEventListener(event.type, handleEvent, true);
- var sync = new Synchronizetion();
- var mutation = new Mutation(function () {
- sync.restore(); });
- var _alert = window.alert;
- window.alert = function () {};
- handler.fire();
- window.alert = _alert;
- sync.restore();
- mutation.unbind();
- window.addEventListener(event.type, handleEvent, true);
- if (handler.isCanceled && (mutation.isCalled || sync.calledPromise)) {
- event.preventDefault();
- }}})();
- (function CheckSites () {
- var Check = window.location.href;
- var Match = RegExp(Sites_List.join('|')).exec(Check);
- if (Match) { Absolute_Mod (); }})();
- function KeyPress (e) {
- if (e.altKey && e.ctrlKey) {
- alert("Absolute Right Click Mod Activate !!!");
- Absolute_Mod();}}
- document.addEventListener("keydown", KeyPress);
- function Absolute_Mod () {
- document.addEventListener("copy",function(e){e.stopPropagation();},true);
- document.addEventListener("keyup",function(e){e.stopPropagation();},true);
- document.addEventListener("mouseup",function(e){e.stopPropagation();},true);
- document.addEventListener("keydown",function(e){e.stopPropagation();},true);
- document.addEventListener("mousedown",function(e){e.stopPropagation();},true);
- document.addEventListener("dragstart",function(e){e.stopPropagation();},true);
- document.addEventListener("mousedown",function(e) {e.stopPropagation();},true);
- document.addEventListener("contextmenu",function(e){e.stopPropagation();},true);
- document.addEventListener("selectstart",function(e){e.stopPropagation();},true);
- }