Block online_current.js

Blocks the online_current.js script from loading

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey, Greasemonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

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

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

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

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्क्रिप्ट व्यवस्थापक एक्स्टेंशन इंस्टॉल करावे लागेल.

(माझ्याकडे आधीच युझर स्क्रिप्ट व्यवस्थापक आहे, मला इंस्टॉल करू द्या!)

Advertisement:

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

(माझ्याकडे आधीच युझर स्टाईल व्यवस्थापक आहे, मला इंस्टॉल करू द्या!)

Advertisement:

// ==UserScript==
// @name         Block online_current.js
// @namespace    https://instructure-uploads.s3.amazonaws.com/
// @version      1.0
// @description  Blocks the online_current.js script from loading
// @match        *://*.instructure.com/*
// @match        *://instructure-uploads.s3.amazonaws.com/*
// @run-at       document-start
// @grant        none
// ==/UserScript==

(function() {
    var observer = new MutationObserver(function(mutations, observer) {
        var scripts = document.querySelectorAll("script[src*='online_current.js']");
        scripts.forEach(script => {
            script.remove(); // Remove the script if found
            console.log("Blocked: " + script.src);
        });
    });

    observer.observe(document, { childList: true, subtree: true });

    // Prevent the script from being added dynamically
    const originalCreateElement = document.createElement;
    document.createElement = function(tagName, options) {
        if (tagName.toLowerCase() === 'script') {
            const scriptElement = originalCreateElement.apply(this, arguments);
            Object.defineProperty(scriptElement, 'src', {
                set: function(value) {
                    if (value.includes('online_current.js')) {
                        console.log("Blocked script injection: " + value);
                        return;
                    }
                    scriptElement.setAttribute('src', value);
                },
                get: function() {
                    return scriptElement.getAttribute('src');
                }
            });
            return scriptElement;
        }
        return originalCreateElement.apply(this, arguments);
    };
})();