如何自动删除CSS规则“正文溢出:隐藏”

时间:2018-07-13 17:35:18

标签: javascript css google-chrome-extension google-chrome-devtools adblock

在某些安装了adblock进入的网页中,主体中添加了“ overflow:hidden” css样式,从而阻止了网站的滚动。

示例:

<html>
  <head>
      <title>Website</title>
  </head>
  <body style="overflow: hidden;">
    Some long article content
  </body>
</html>

我必须在Chrome Web检查器中手动进行编辑才能将其删除,这很烦人。

我想知道我可以永久删除此内容,也可以通过chrome扩展程序或adblock规则进行检测以将其删除,也可以通过直接的javascript等进行检测。

更新:使用tampermonkey chrome扩展程序,也许我可以达到我的目标。我执行了以下脚本,但没有结果(页面似乎重新加载或加载了一些JavaScript,但我无法正确删除隐藏的主体溢出):

// ==UserScript==
// @name         InvestingRemoveScrollBodyBlocker
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Remove body overflow hidden
// @author       Ángel Guzmán Maeso <angel@guzmanmaeso.com>
// @match        https://*.investing.com/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    setTimeout(function(){

        var bodyWeb = document.getElementsByTagName("BODY")[0];
        console.log(bodyWeb);
        bodyWeb.style.overflow = "visible !important";

    }, 4000);

})();

2 个答案:

答案 0 :(得分:2)

尝试使用此脚本工具TamperMonkey

要覆盖溢出

body {
   overflow: visible !important;
}

将与TamperMonkey一起使用的脚本:

// ==UserScript==
// @name         InvestingRemoveScrollBodyBlocker
// @namespace    http://tampermonkey.net/
// @version      0.2
// @description  Remove body overflow hidden
// @author       Ángel Guzmán Maeso <angel@guzmanmaeso.com>
// @match        https://*.investing.com/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    // Credits: https://stackoverflow.com/questions/51330252/how-to-remove-the-css-rule-body-overflowhidden-automatically
    document.body.style.cssText = "visible !important";
})();

答案 1 :(得分:1)

您可以添加带有uBlock Origin:style() operator过滤规则以覆盖此规则:

*##html,body:style(overflow: visible !important;)