构建一个加载项以隐藏HTML页面上的<div>块</div>

时间:2012-09-11 00:32:41

标签: firefox firefox-addon firefox-addon-sdk

有一个网页上有一些烦人的东西,我每次访问它时都想隐藏它。我认为这样做的好方法是为Firefox添加一个附件。

我以前从未这样做过,并遇到过基于网络的Firefox附加组件构建器。我不太确定从哪里开始。我知道这应该很容易做到这一点。我想我需要做的就是检查网站上是否使用了具有特定ID的块,如果是,则从我的视图中删除/隐藏它。

这是最好的方法吗?如果没有,你有什么建议?如果是这样,你能给我任何帮助我完成这个的提示吗?

7 个答案:

答案 0 :(得分:8)

是的,我明白了:

仅使用独立的Firefox附加组件,请使用以下代码:

exports.main = function() {

    var pageMod = require("page-mod");
        pageMod.PageMod({
        include: "*.ca",
        contentScriptWhen: 'end',
        contentScript: 'document.getElementById("DIVID").style.visibility="hidden";'
    });
};

只需将DIVID替换为您想要的任何内容。

同样,在Greasemonkey中,只需将其添加到脚本中:

document.getElementById('DIVID').style.visibility='hidden';

我不想使用Greasemonkey的唯一原因是它不容易分享。但它的便利性无法超越!

答案 1 :(得分:3)

  1. 安装最新的FF
  2. 安装最新AdBlock Plus
  3. 转到网站右键单击特定元素,然后检查元素(Q)
  4. 右下角有隐藏ABP(AdBlock Plus)按钮,点击它,然后添加元素隐藏规则

答案 2 :(得分:1)

你可以使用GreaseMonkey这是一个非常有用的Firefox插件。您可以在JavaScript中编写自己的脚本,该脚本在页面上运行。

但是,有些人可能已经为相关网站编写了一个可以从http://userscripts.org/存储库安装的脚本。

答案 3 :(得分:1)

在格式正确的HTML中,id属性的任何特定值最多应在文档中出现一次。如果你的任务是寻找并摧毁一个反复出现的现象,那么可能会用class标记(如果有的话)。例如,Twitter的“推广推文”就属于这种情况。

    var promotedTweets = document.getElementsByClassName("promoted-tweet");
    for (k=0; k<promotedTweets.length; k++) {
     promotedTweets[k].parentNode.removeChild(promotedTweets[k]);
    }

答案 4 :(得分:0)

Adblock Plus不会在这里耍手段吗?如果我没记错的话,您可以在任何给定的网站上为它提供元素隐藏规则(基于类或ID属性)。

答案 5 :(得分:0)

我使用了即将推出的jpm工具来编写此工具,并将建议纳入此处。它专门用于在StackOverflow上过滤某些xpi标签 - 如何拟合。代码和%matplotlib inline %config InlineBackend.figure_format = 'svg' import matplotlib.pyplot as plt 加载项文件位于Github

答案 6 :(得分:0)

Firefox 中的替代方法是创建一个 userContent.css 文件并添加隐藏 div 的 css。

请参阅 https://superuser.com/a/319322/ 并注意指出“从 Firefox 69 开始,您需要将 toolkit.legacyUserProfileCustomizations.stylesheets preference 设置为 true”的注释。