您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Disables the ugly feature that disables right click
当前为
// ==UserScript== // @name Disable 'disable right click' // @namespace https://github.com/mosaicer // @author mosaicer // @description Disables the ugly feature that disables right click // @version 1.4.3 // @include * // @run-at document-idle // ==/UserScript== (() => { 'use strict'; const EVENT_NAMES = ['oncontextmenu', 'oncopy', 'onpaste', 'onmousedown', 'onselectstart']; const replaceFalseWithTrue = function replaceFalseTheFunctionReturnsWithTrue(funcText) { return funcText.replace(/(return[\s\(]+)false([\s\)]*;?)/, '$1true$2'); }; document.querySelectorAll('*').forEach(node => EVENT_NAMES.forEach(name => { const attr = node.getAttribute(name); if (attr) { node.setAttribute( name, replaceFalseWithTrue(attr) ); } }) ); [window, document].forEach(et => EVENT_NAMES.forEach(name => { const handler = et[name]; if (typeof handler === 'undefined' || handler === null) { return; } const handlerText = handler.toString(); let output; if (handlerText.startsWith('function')) { output = replaceFalseWithTrue(handlerText) .replace(/^function\s*(\(.*?\))/, '$1 =>'); } else if (/^\(?.+?\)?\s*=>\s*\{/.test(handlerText)) { output = replaceFalseWithTrue(handlerText); } else { output = handlerText.replace(/^(\(?.+?\)?\s*=>\s*)false/, '$1true'); } et[name] = eval(output); }) ); })();