如何使用 Greasemonkey 有选择地从网站中删除内容?
How to use Greasemonkey to selectively remove content from a website?
我尝试使用 uBlock origin、Greasemonkey 和 Anti-Adblock Killer 从 this website 中删除内容(付费内容)脚本。
我试过运行this script但没有成功。
我要删除的 ("paid") 内容如下所示:
<div class="news" info="398825">
<div class="normal" ...>
<div class="supertitle">
<a href="http://www.monitor.hr/marketing/sponzorirana.html" target="_blank">Sponzorirana vijest</a>
</div>
...
我可以使用此元素将 "paid content" 与其余内容区分开来:
<a href="http://www.monitor.hr/marketing/sponzorirana.html" target="_blank">Sponzorirana vijest</a>
我想从链接网站中删除每个 "paid content" ("Sponzorirana vijest") 部分。
这是有效的脚本,只需将其粘贴到 tampermonkey 或 greasemonkey 中即可。
// ==UserScript==
// @name Disable for sponsored news
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match http://www.monitor.hr/
// @grant none
// ==/UserScript==
(function() {
$("a:contains('Sponzorirana vijest')").closest('.news').css('display', 'none');
})();
脚本解释。
@match 显示在哪个网站上应用它。
函数部分是jquery,选择classnews的节点最接近包含字符串Sponzorirana vijest的锚标签, when selected display: none is applied.
该内容似乎是 静态的。因此,只需像这样利用页面的 jQuery:
// ==UserScript==
// @name _Remove sponsored content
// @match *://www.monitor.hr/*
// @grant none
// ==/UserScript==
$(".supertitle > a[href*='marketing/sponzorirana']").closest (".news").remove ();
如果动态添加更多这些块,请使用waitForKeyElements()
,如this answer所示。像这样的东西(在 GM4 中未经测试):
// ==UserScript==
// @name _Remove sponsored content
// @match *://www.monitor.hr/*
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant none
// ==/UserScript==
waitForKeyElements (".supertitle > a[href*='marketing/sponzorirana']", removeNewsNode);
function removeNewsNode (jNode) {
jNode.closest (".news").remove ();
}
最后,根据 Greasemonkey 自己的开发人员的意见,切换到 Tampermonkey 或 Violentmonkey。 Greasemonkey 4+存在严重缺陷
我在 uBlock 中创建了这个自定义过滤器,它非常有用:
www.monitor.hr##.tag-sponzorirana-vijest.category-vijest
我尝试使用 uBlock origin、Greasemonkey 和 Anti-Adblock Killer 从 this website 中删除内容(付费内容)脚本。
我试过运行this script但没有成功。
我要删除的 ("paid") 内容如下所示:
<div class="news" info="398825">
<div class="normal" ...>
<div class="supertitle">
<a href="http://www.monitor.hr/marketing/sponzorirana.html" target="_blank">Sponzorirana vijest</a>
</div>
...
我可以使用此元素将 "paid content" 与其余内容区分开来:
<a href="http://www.monitor.hr/marketing/sponzorirana.html" target="_blank">Sponzorirana vijest</a>
我想从链接网站中删除每个 "paid content" ("Sponzorirana vijest") 部分。
这是有效的脚本,只需将其粘贴到 tampermonkey 或 greasemonkey 中即可。
// ==UserScript==
// @name Disable for sponsored news
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match http://www.monitor.hr/
// @grant none
// ==/UserScript==
(function() {
$("a:contains('Sponzorirana vijest')").closest('.news').css('display', 'none');
})();
脚本解释。 @match 显示在哪个网站上应用它。 函数部分是jquery,选择classnews的节点最接近包含字符串Sponzorirana vijest的锚标签, when selected display: none is applied.
该内容似乎是 静态的。因此,只需像这样利用页面的 jQuery:
// ==UserScript==
// @name _Remove sponsored content
// @match *://www.monitor.hr/*
// @grant none
// ==/UserScript==
$(".supertitle > a[href*='marketing/sponzorirana']").closest (".news").remove ();
如果动态添加更多这些块,请使用waitForKeyElements()
,如this answer所示。像这样的东西(在 GM4 中未经测试):
// ==UserScript==
// @name _Remove sponsored content
// @match *://www.monitor.hr/*
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant none
// ==/UserScript==
waitForKeyElements (".supertitle > a[href*='marketing/sponzorirana']", removeNewsNode);
function removeNewsNode (jNode) {
jNode.closest (".news").remove ();
}
最后,根据 Greasemonkey 自己的开发人员的意见,切换到 Tampermonkey 或 Violentmonkey。 Greasemonkey 4+存在严重缺陷
我在 uBlock 中创建了这个自定义过滤器,它非常有用:
www.monitor.hr##.tag-sponzorirana-vijest.category-vijest