Reset CSS on Economist

Reset overflow and position properties of .sp-message-open body on Economist.com

スクリプトをインストールするには、Tampermonkey, GreasemonkeyViolentmonkey のような拡張機能のインストールが必要です。

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

スクリプトをインストールするには、TampermonkeyViolentmonkey のような拡張機能のインストールが必要です。

スクリプトをインストールするには、TampermonkeyUserscripts のような拡張機能のインストールが必要です。

このスクリプトをインストールするには、Tampermonkeyなどの拡張機能をインストールする必要があります。

このスクリプトをインストールするには、ユーザースクリプト管理ツールの拡張機能をインストールする必要があります。

(ユーザースクリプト管理ツールは設定済みなのでインストール!)

このスタイルをインストールするには、Stylusなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus などの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus tなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

(ユーザースタイル管理ツールは設定済みなのでインストール!)

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください
// ==UserScript==
// @name         Reset CSS on Economist
// @description  Reset overflow and position properties of .sp-message-open body on Economist.com
// @match        *://*.economist.com/*
// @run-at       document-start
// @version 0.0.1.20250321200314
// @namespace https://greasyfork.org/users/1435046
// ==/UserScript==

(function() {
    'use strict';

    function resetStyles() {
        if (document.documentElement.classList.contains("sp-message-open")) {
            document.body.style.setProperty("overflow", "visible", "important");
            document.body.style.setProperty("position", "static", "important");
        } else {
            // Restore default styles if the class is removed
            document.body.style.removeProperty("overflow");
            document.body.style.removeProperty("position");
        }
    }

    // Run on page load and at intervals to counteract site scripts
    resetStyles();
    setInterval(resetStyles, 500);  // Reapply fix every 500ms

    // Observe for class changes on <html>
    const observer = new MutationObserver(resetStyles);
    observer.observe(document.documentElement, { attributes: true, attributeFilter: ["class"] });
})();