您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Force Enable Right Click & Copy & Highlight
当前为
// ==UserScript== // @name Absolute Enable Right Click & Copy (Beta) // @namespace Absolute Right Click // @description Force Enable Right Click & Copy & Highlight // @shortcutKeys [Ctrl + `] Activate Absolute Right Click Mode To Force Remove Any Type Of Protection // @author Absolute // @version 2.1.5 // @include http://* // @include https://* // @icon https://i.imgur.com/Iq9LtC4.png // @compatible Chrome Google Chrome + Tampermonkey // @license BSD // @copyright Absolute, All Right Reserved (2016-Oct-06) // @Exclude /.*.(www.google.[^]|docs.google.[^]|www.bing.com|www.youtube.com|www.facebook.com|www.instagram.com|twitter.com).*/ // ==/UserScript== (function() { 'use strict'; var css = document.createElement("style"); var head = document.head; head.appendChild(css); css.type = 'text/css'; css.innerText = '* { user-select: text !important; -webkit-user-select: text !important; }'; var element = document.querySelectorAll("*"); for (var i = 0; i < element.length; i++) { if (element[i].style.userSelect == 'none') { element[i].style.userSelect = 'auto'; } } var doc = document; var body = document.body; var docEvents = [ doc.oncontextmenu = null, doc.onselectstart = null, doc.ondragstart = null, doc.onmousedown = null ]; var bodyEvents = [ body.oncontextmenu = null, body.onselectstart = null, body.ondragstart = null, body.onmousedown = null, body.oncut = null, body.oncopy = null, body.onpaste = null ]; setTimeout(function() { document.oncontextmenu = null; }, 2000); [].forEach.call( ['copy', 'cut', 'paste', 'select', 'selectstart'], function(event) { document.addEventListener(event, function(e) { e.stopPropagation(); }, true); } ); function keyPress(event) { if (event.ctrlKey && event.keyCode == 192) { return confirm("Activate Absolute Right Click Mode!") === true ? absoluteMod() : null; } } function absoluteMod() { [].forEach.call( ['contextmenu', 'copy', 'cut', 'paste', 'mouseup', 'mousedown', 'keyup', 'keydown', 'drag', 'dragstart', 'select', 'selectstart'], function(event) { document.addEventListener(event, function(e) { e.stopPropagation(); }, true); } ); } setTimeout(function() { contextMenu(); document.addEventListener("keydown", keyPress); }, 100); function contextMenu() { function EventsCall(callback) { this.events = ['DOMAttrModified', 'DOMNodeInserted', 'DOMNodeRemoved', 'DOMCharacterDataModified', 'DOMSubtreeModified']; this.bind(); } EventsCall.prototype.bind = function() { this.events.forEach(function (event) { document.addEventListener(event, this, true); }.bind(this)); }; EventsCall.prototype.handleEvent = function() { this.isCalled = true; }; EventsCall.prototype.unbind = function() { this.events.forEach(function (event) {}.bind(this)); }; function EventHandler(event) { this.event = event; this.contextmenuEvent = this.createEvent(this.event.type); } 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) { event.preventDefault(); }.bind(this); target.dispatchEvent(this.contextmenuEvent); this.isCanceled = this.contextmenuEvent.defaultPrevented; }; function handleEvent(event) { event.stopPropagation(); event.stopImmediatePropagation(); var handler = new EventHandler(event); window.removeEventListener(event.type, handleEvent, true); var EventsCallBback = new EventsCall(function() {}); handler.fire(); window.addEventListener(event.type, handleEvent, true); if (handler.isCanceled && (EventsCallBback.isCalled)) event.preventDefault(); } window.addEventListener('contextmenu', handleEvent, true); } })();