5

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

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

这是解决这个问题的最好方法吗?如果没有,你有什么建议?如果是这样,你能给我一些提示来帮助我完成这个吗?

4

7 回答 7

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 的唯一原因是它不容易共享。但它的便利性是无与伦比的!

于 2012-09-11T01:19:09.400 回答
3
  1. 安装最新的FF
  2. 安装最新的 AdBlock Plus
  3. 转到网站右键单击特定元素,然后检查元素(Q)
  4. 右下角有Hide with ABP(AdBlock Plus)按钮,点击它,然后添加元素隐藏规则
于 2012-12-09T21:21:43.657 回答
1

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

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

于 2012-09-11T00:38:11.287 回答
1

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

    var promotedTweets = document.getElementsByClassName("promoted-tweet");
    for (k=0; k<promotedTweets.length; k++) {
     promotedTweets[k].parentNode.removeChild(promotedTweets[k]);
    }
于 2012-09-11T14:51:12.313 回答
0

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

于 2012-09-11T08:15:17.667 回答
0

I used the up-and-coming jpm tool to write this, and incorporated the suggestions here. It is specifically for filtering certain div tags here on StackOverflow—how fitting. The code and the xpi add-on file is at Github.

于 2015-06-01T20:16:12.627 回答
0

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

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

于 2021-05-02T19:04:22.877 回答