Пользовательский скрипт Greasemonkey / Tampermonkey для скрытия элементов по их свойствам - PullRequest
1 голос
/ 06 января 2020

есть блок с рекламой, а стили css динамически меняются (css запутывается / свернут) при каждой загрузке страницы, поэтому невозможно традиционно блокировать элемент из-за их случайно назначенных стилей .

просматривая инспектор в mozilla firefox, я обнаружил, что существует несколько стилей css с обычными именами, и они применяются к DIV вместе с запутанными стилями. см. снимок экрана с примером.

снимок экрана исходного сайта с открытым инспектором

Я обнаружил, что иногда пользовательские скрипты Greasemonkey более гибкие и могут использоваться для блокировки определенных элементов в сложных случаях чем ублок происхождения. Особенно с вещами AJAX и некоторыми другими случаями. Я искал много часов, здесь много пользовательских скриптов, которые скрывают элементы, но у меня все еще есть некоторые вопросы ...

Я пытался использовать этот скрипт (основываясь на результатах, найденных здесь):

// ==UserScript==
// @name        Remove colomn with ads 
// @match     https://e.mail.ru/*
// @version     1
// @grant       GM_addStyle
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
// ==/UserScript==
$('.layout_right-size_60').remove();
$('.layout__column_right').remove();

Но это тоже не сработало. Я думаю, потому что эти стили "серые" и не присутствуют в исходном коде страницы, я вижу их только внутри "инспектора" Mozilla. Все стили, которые видны в исходном коде страницы, обфусцированы, а также идентификаторы элементов. Ни один из простых способов выбора элементов здесь не работает ... Но я не уверен, что причина в этом.

Если выбор по css имени стиля невозможен, возник дополнительный вопрос: как выбрать и удалить элементы (с javascript или jquery), в соответствии не только с именем класса, но и с другими параметрами? например, в соответствии с их свойствами "style":

width:240px;
padding-left: 8px;
font-size: calc(-82px + 84px + -21px + 30px);

... чтобы добавить этот выбор в мой скрипт выше и удалить те элементы, которые соответствуют выбору. Я пробовал этот код:

$('div[width="240"]').remove();
$('div[style*="width: 240px"]').remove();

, но безрезультатно. возможно, потому что эти элементы динамически добавляются все время после того, как страница уже была загружена. (только предположение) снимок экрана с кодом, показывающим свойство 240px

спасибо!

PS: я не программист, и javascript не моя специальность. Я просто пишу собственные правила происхождения для ублока и некоторые скрипты basi c greasemonkey, чтобы скрыть рекламу и надоедливые вещи на веб-сайтах, вызывать рекламу и различные всплывающие окна и т. Д. от adblocker не помогают; Мне приходится бороться с рекламой «за сайт» индивидуально. Увы.

заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...