我想禁用某个网站上的特定脚本,但不阻止其他脚本运行。我使用的是 Firefox,并安装了 Adblock Plus 和 Greasemonkey。我已经在 Google 上搜索过很多次,尝试过不同的方法,但最终还是失败了。看来我对设置用户脚本或定义广告拦截规则的理解还不够。
这是我需要阻止的脚本。这是一个烦人的弹出窗口。内容被 Adblock 阻止,但每次我点击页面时仍会打开一个不需要的空白窗口。
<script>
BetterJsPop.add('https://www.url.tld/page.html',
{
under: true,
newTab: false,
perpage: 5,
cookieExpires: 600,
});
</script>
任何帮助,将不胜感激。
答案1
安装 uBlock Origin 将过滤器添加到过滤器列表:
webpage.com##script:contains(...)
将 Webpage.com 替换为您想要的页面。将 ... 替换为脚本包含的文本,它可能是函数名称或代码中文本行的一部分。例如,如果脚本如下所示:
<script>
function nuisanceCode() {
doSomething.blablabla
}
</script>
您应该将 ... 替换为妨害法规或者啦啦啦
更多的:https://github.com/gorhill/uBlock/wiki/Inline-script-tag-filtering
答案2
我对 HTML 的理解和调试还只是个新手。我也遇到了这个问题,我尝试了几种方法,但都不起作用。比如 ABP 中的过滤选项,可以阻止脚本创建的弹出窗口的 URL。(在我知道它具体来自哪里/由哪里生成之前)
所以我深入研究了 HTML 源代码,发现了您所描述的内容。一个 Java Popunder 脚本。这段代码就在它上面:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebSite",
"url": "http://www.your-specific-website.com/",
"potentialAction": {
"@type": "SearchAction",
"target": "http://www.popup-you-want-to-disable.com/search/?q={search_term_string}",
"query-input": "required name=search_term_string"
}
}
</script>
<script src="http://www.your-specific-website.com/js/script.js"></script>
<script src="http://www.your-specific-website.com/js/license.4.js"></script>
这让我知道 pupunder 是由位于 *js/script.js 中的脚本生成的(因为这行<script src="http://www.your-specific-website.com/js/script.js"></script>
)
所以我必须创建一个自定义过滤器来阻止读取该脚本。
所以我添加了这个自定义 ABP 过滤器
|http://www.your-specific-website.com/js/script.js
到目前为止,它似乎完全按照我希望的方式工作(所以它只会阻止烦人的 pupunder,而不会阻止超出我想要的范围。因为网站上正在运行其他 java 应用程序或脚本)
我尝试重现该网站确实打开了弹出式/底部弹出式窗口,但尚未成功。因此,在我再次打开该窗口并启用过滤器之前,我认为此修复有效。
祝你好运,我希望这能帮你解决问题。
(再说一次,我只是一个业余爱好者,喜欢找出导致我遇到的错误/不良操作的原因。因此,如果有人对 html 代码或这个特定问题有更多了解,并且认为这绝对不是解决这个问题的方法,请告诉我,并且告诉我我必须做些什么才能解决这个问题。)
答案3
答案4
您可以从检查菜单的源选项卡暂停特定脚本文件的执行。当您需要 JavaScript 正确加载页面时,此功能非常有用。但之后您不需要/不想要它。