Как использовать 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
Другие вопросы по тегам