// ==UserScript== // @name Enable right click & Copy // @namespace Re-Enable right click Menu // @description Force Enable right click & Copy // @author Absolute // @version 1.1.2 // @include http*://* ///@run-at document-start // @grant GM_addStyle // @icon https://cdn3.iconfinder.com/data/icons/communication-130/63/cursor-128.png // @Exclude http*://*.box.com/* // @Exclude /.*(JPG|PNG|GIF|JPEG|ico).*/ // @downloadURL none // ==/UserScript== // Force Enable right click button document.body.addEventListener( "contextmenu", function(e) { e.stopPropagation(); } ); // Support to Enable Context Menu document.body.setAttribute('oncontextmenu', 'return true'); document.body.setAttribute('onselectstart', 'return true'); document.body.setAttribute('ondragstart', 'return true'); // Support to Enable Copy function clearEventListeners() { document.oncontextmenu = undefined; document.oncopy = undefined; document.oncut = undefined; document.onpaste = undefined; document.onselectstart = undefined; document.body.removeAttribute("oncopy"); document.body.removeAttribute("ondrag"); document.body.removeAttribute("oncontextmenu"); document.body.removeAttribute("onselectstart"); } window.addEventListener('load', clearEventListeners, false); // Force Enable Copy & Highlight (function() { 'use strict'; var scriptTag = document.createElement('script'); scriptTag.setAttribute('type', 'text/javascript'); scriptTag.textContent = "$(function() {\n" + "$('body').off('copy contextmenu selectstart').unbind('contextmenu');\n" + "});"; document.getElementsByTagName('body')[0].appendChild(scriptTag); [].forEach.call(document.querySelectorAll('[oncontextmenu]'), function (targetNode) { targetNode.removeAttribute('oncontextmenu');}); [].forEach.call(document.querySelectorAll('[onselectstart="return false;"]'), function (targetNode) { targetNode.removeAttribute('onselectstart');}); [].forEach.call(document.querySelectorAll('[onmousedown="return false;"]'), function (targetNode) { targetNode.removeAttribute('onselectstart');}); [].forEach.call(document.querySelectorAll('[oncopy]'), function (targetNode) { targetNode.removeAttribute('oncopy');}); [].forEach.call(document.querySelectorAll('[unselectable]'), function (targetNode) { targetNode.removeAttribute('unselectable');}); if (document.onmousedown === 'rightclick') { document.onmousedown = ''; } if (document.oncontextmenu) { document.oncontextmenu = ''; } GM_addStyle('* {user-select: text !important; -moz-user-select: text !important; -webkit-user-select: text !important; -webkit-user-drag: text !important; -khtml-user-select: text !important; -khtml-user-drag: text !important; }');}());