powerline.io

Replaces inline JS on powerline.io

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

Dovrai installare un'estensione come Tampermonkey o Violentmonkey per installare questo 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         powerline.io
// @namespace    http://tampermonkey.net/
// @version      0.7
// @description  Replaces inline JS on powerline.io
// @author       Shaun Mitchell <guy#4962>
// @match        *://powerline.io/*
// @grant        unsafeWindow
// @run-at       document-start
// ==/UserScript==

var evilJSRegex = /SpaceWars/;
var replacementJSUrl = "http://test.shitchell.com/powerline/custom.js";

function removeInlineJS(e) {
    if (evilJSRegex.test(e.target.innerText)) {
        // Stop the default JS from running
        e.stopPropagation();
        e.preventDefault();

        // Create a new script tag for our custom JS
        var awesomeJS = document.createElement("script");
        awesomeJS.type = "text/javascript";
        awesomeJS.src = replacementJSUrl;

        // Replace the old JS with our custom shiznit
        var parentNode = e.target.parentNode;
        parentNode.removeChild(e.target);
        parentNode.appendChild(awesomeJS);

        // Remove the event listener
        unsafeWindow.removeEventListener("beforescriptexecute", removeInlineJS, true);
    }
}

(function() {
    'use strict';
    Object.defineProperty(unsafeWindow, "debug", {
        get: function() {
            return true;
        },
        set: function(x) {
            console.log("Cannot change value of debug variable.");
        }
    });

    unsafeWindow.addEventListener("beforescriptexecute", removeInlineJS, true);
})();