Как использовать Greasemonkey для выборочного удаления контента с сайта?
Я пытался удалить контент (платный контент) с этого веб-сайта с использованием сценария uBlock, сценария Greasemonkey и Anti-Adblock Killer.
Я пытался запустить этот скрипт, но безуспешно.
("Платный") контент, который я хочу удалить, выглядит следующим образом:
<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>
...
Я могу отличить "платный контент" от остального контента с помощью этого элемента:
<a href="http://www.monitor.hr/marketing/sponzorirana.html" target="_blank">Sponzorirana vijest</a>
Я хотел бы удалить каждый раздел "платного контента" ("Sponzorirana vijest") со ссылочного веб-сайта.
3 ответа
Этот контент выглядит статичным. Так что просто используйте jQuery страницы следующим образом:
// ==UserScript==
// @name _Remove sponsored content
// @match *://www.monitor.hr/*
// @grant none
// ==/UserScript==
$(".supertitle > a[href*='marketing/sponzorirana']").closest (".news").remove ();
Если больше этих блоков добавляются динамически, используйте waitForKeyElements()
как показано в этом ответе. Примерно так (не проверено в 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+ имеет серьезные недостатки.
И вот скрипт, который работает, просто вставьте его в 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 показывает, на каком веб-сайте его применять. Функция parts - это jquery, который выбирает узел новостей класса, ближайший к якорному тегу, который содержит строку Sponzorirana vijest, когда выбрано отображение: ни один не применяется.
Я создал этот пользовательский фильтр в uBlock, и он работает как шарм:
www.monitor.hr##.tag-sponzorirana-vijest.category-vijest