Absolute Enable Right Click & Copy

Force Enable Right Click & Copy & Highlight

Versione datata 17/01/2017. Vedi la nuova versione l'ultima versione.

Dovrai installare un'estensione come Tampermonkey, Greasemonkey o Violentmonkey per installare questo script.

You will need to install an extension such as Tampermonkey to install this script.

Dovrai installare un'estensione come Tampermonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Userscripts per installare questo script.

Dovrai installare un'estensione come ad esempio Tampermonkey per installare questo script.

Dovrai installare un gestore di script utente per installare questo script.

(Ho già un gestore di script utente, lasciamelo installare!)

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

(Ho già un gestore di stile utente, lasciamelo installare!)

// ==UserScript==
// @name         Absolute Enable Right Click & Copy
// @namespace    Absolute Right Click
// @description  Force Enable Right Click & Copy & Highlight
// @shortcutKeys [Ctrl + Alt] Activate Absolute Right Click Mod To Force Remove Any Type Of Protection
// @author       Absolute
// @version      1.2.9
// @include      *
// @icon         https://cdn3.iconfinder.com/data/icons/communication-130/63/cursor-128.png
// @license      BSD
// @copyright    Absolute, All Right Reserved (2016)
// @grant        GM_addStyle
// @Exclude      /.*(www.google.[^]|bing.com|facebook.com|pixiv.net).*/

// ==/UserScript==

     var Sites_List =  ['163.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.getElementsByTagName('head')[0].appendChild(style);
        })();

    (function CheckEvents () {
        var events = ['oncut','oncopy','ondragstart','onselectstart','oncontextmenu','onselect'];
        for (var i = 0; i < events.length; i++)
        document.body.setAttribute(events[i],'null');
        })();

    (function FixEvents () {
		var events = ['contextmenu'];
		for (var i = 0; i < events.length; i++) {
        document.addEventListener(events[i],function(e){e.stopPropagation();});
        document.addEventListener(events[i],function(e){e.stopImmediatePropagation();});
		}})();

    (function RightClickButton () {
        function EventsCall (callback) {
        this.isCalled = false;
        this.isUnbound = false;
        this.callback = 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;
        this.unbind();
        };
    EventsCall.prototype.unbind = function () {
		if (this.isUnbound) {
        return;
        }
    this.events.forEach(function (event) {
		document.removeEventListener(event, this, true);
        }.bind(this));
		this.isUnbound = true;
        };
    function Synchronization () {
    	}
    Synchronization.prototype.restore = function () {
        this.isRestoration = true;
        };
    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);
		window.addEventListener(this.event.type, contextmenuHandler, false);
        target.dispatchEvent(this.contextmenuEvent);
		window.removeEventListener(this.event.type, contextmenuHandler, false);
        this.isCanceled = this.contextmenuEvent.defaultPrevented;
        };
        window.addEventListener('contextmenu', handleEvent, true);
    function handleEvent (event) {
		event.stopPropagation();
        event.stopImmediatePropagation();
        var handler = new EventHandler(event);
		window.removeEventListener(event.type, handleEvent, true);
        var sync = new Synchronization();
    var EventsCallBback = new EventsCall(function () {
	    sync.restore();
		});
        handler.fire();
        window.addEventListener(event.type, handleEvent, true);
        if (handler.isCanceled && (EventsCallBback.isCalled)) {
        event.preventDefault();
 		}}})();

    (function CheckIncludeSites () {
		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 () {
		var events = ['contextmenu','copy','cut','mouseup','mousedown','keyup','keydown','dragstart','selectstart','select'];
		for (var i = 0; i < events.length; i++) {
		document.addEventListener(events[i],function(e){e.stopPropagation();},true);
		}}