learngerman.dw.com

DW learn german website style fix

// ==UserScript==
// @name         learngerman.dw.com
// @namespace    http://tampermonkey.net/
// @version      2025-06-15
// @description  DW learn german website style fix
// @author       You
// @match        https://learngerman.dw.com/en/**
// @icon         https://www.google.com/s2/favicons?sz=64&domain=dw.com
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    // Define the CSS variables we want to disable
    const OVERFLOW_VAR = '--global-disable-scrolling-overflow';
    const PADDING_VAR = '--global-disable-scrolling-padding';

    // Store original methods
    const originalSetProperty = CSSStyleDeclaration.prototype.setProperty;
    const originalRemoveProperty = CSSStyleDeclaration.prototype.removeProperty;

    // Override setProperty
    CSSStyleDeclaration.prototype.setProperty = function(property, value, priority) {
        if (this === document.documentElement.style && (property === OVERFLOW_VAR || property === PADDING_VAR)) {
            console.log(`Tampermonkey: Blocked setProperty for ${property}`);
            return; // Block the operation
        }
        // Call original method for all other properties or elements
        originalSetProperty.call(this, property, value, priority);
    };

    // Override removeProperty
    CSSStyleDeclaration.prototype.removeProperty = function(property) {
        if (this === document.documentElement.style && (property === OVERFLOW_VAR || property === PADDING_VAR)) {
            console.log(`Tampermonkey: Blocked removeProperty for ${property}`);
            return ''; // Block the operation, return empty string as original might
        }
        // Call original method for all other properties or elements
        return originalRemoveProperty.call(this, property);
    };

    console.log('Tampermonkey: Modal scrolling style disabler script loaded.');

})();