Предложенный мной способ с помощью плагина Stylus и CSS не у всех работает, поэтому решил попробовать сделать тоже самое, но уже с помощью плагина Greasemonkey и javascript.
Получился вот такой код:
// ==UserScript== // @name Mail.ru adv // @version 1 // @include <a href="https://e.mail.ru/*<br /> //" title="https://e.mail.ru/*<br /> //">https://e.mail.ru/*<br /> //</a> @run-at document-end // @grant none // ==/UserScript== (function(){ 'use strict'; MutationObserver = window.MutationObserver || window.WebKitMutationObserver; // Выбираем целевой элемент var target = document; // Конфигурация observer (за какими изменениями наблюдать) const config = { //attributes: true, childList: true, subtree: true }; // Функция обратного вызова при срабатывании мутации const callback = function(mutationsList, observer) { var advParent = target.getElementById('app-canvas'); var advElement1 = advParent.children[0].children[0].children[0].children[0].children[1].childNodes[1]; advElement1.style = 'margin-right: 0px;'; var advElement2 = advParent.children[0].children[0].children[0].children[0].children[1].childNodes[2]; advElement2.style = 'display: none;'; let advElements = document.querySelectorAll('div[__mediators$="layout-manager"]'); for (let elem of advElements) { elem.style = 'display: none;'; } }; // Создаем экземпляр наблюдателя с указанной функцией обратного вызова const observer = new MutationObserver(callback); // Начинаем наблюдение за настроенными изменениями целевого элемента observer.observe(target, config); // Позже можно остановить наблюдение //observer.disconnect(); })();
Проблемы были две. Одна заключается в том, что имена стилей меняются при загрузке страницы, а вторая - это то, что данные, которые необходимо отфильтровать, загружаются после загрузки страницы и поэтому пришлось отлавливать события изменения содержимого страницы уже после ее загрузки.
Тестировал только у себя - работает. Но у меня работает и первый способ с помощью CSS, поэтому как данный метод отработает у других пока не знаю.
UPD 09.05.2020 Дополнил код, чтобы скрывалось рекламное окно после отправки письма.
UPD 07.09.2022 Код пришлось немного дописать, т.к. майл что-то поменял. Кому надо пишите на почту.
Спасибо, помогло, даже браузер перезагружать не пришлось. Правда я этот скрипт вставил в Tampermonkey, это аналог.
Спасибо за отзыв. Буду знать, что у кого-то тоже работает, а то я сомневался.
выдаёт какую-то ошибку в 13й строке
в этой:
MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
пишет
eslint: no-native- r eassign Read -only global ·MutationObserver' should not be
modified .
Попробуйте просто закоментировать эту строку.
всё равно не работает. может я что-то неправильно делаю...На вкладке "установленные скрипты" скрипт есть. Ползунок в позиции "включено". обновляю страницу мейла - ничего не происходит. В окошке tampermonkey написано "скрипт не запущен"
Я тестил на greasemonkey. Возможно, что для tampermonkey заголовок скрипта (все что между // ==UserScript==) будет другой.
в хорме нет greasemonkey. есть только tampermonkey
Видимо когда-то я в хроме тоже тренировался. Обнаружил, что у меня там установлен Violentmonkey. Зашел сейчас на mail.ru, нажал создать скрипт и вставил свой скрипт(кроме заголовка, заголовок оставил тот, что получился по умолчанию). Все работает. В хроме.
Скрипт отлично работает на Хроме через Violentmonkey. Но есть 2 момента, которые хотелось бы в нем видеть:
1. Он не блокирует верхнюю рекламную строчку, которая находиться над 1 письмом в любой папке.
2. Так как он, как я понимаю, блокирует всплывающие окна сайта, не работает кнопка очистки корзины в левом меню, т.к. при нажатии на нее, должно всплывать сообщение с подтверждением. ;-)
А так всё супер!
Спасибо за отзыв. Если руки дойдут, то может доделаю. Просто корзину не чищу никогда, поэтому даже не обратил на это внимание. А так да, похоже что любое мэйловское окно блокируется у меня. Вот этим куском кода:
Поэтому либо это убрать, либо отключать плагин на время операций с всплывающим окном.
Спасибо автору за скрипт!
Не появилось ли решения чтобы убрать рекламу над первым письмом в списке?
Нет. В отличии от рекламы сбоку, это не сильно меня напрягает, поэтому и со скриптом не напрягался ради этого :)
У меня перестал срабатывать приведенный скрипт, mail.ru видимо поменяли что-то. Для себя немного переписал код и заработало. Если кому надо пишите в личку.
готов купить скрип, избавляющий от рекламы майл-ру
Владимир, отписал вам на почту.
Вот и у меня он перестал работать... :-( К сожалению, в личку написать не могу, т.к. не зарегистрирован здесь. А есть возможность прислать исправленный код куда нибудь?
И да, спасибо большое за труды! Продоначу! :-)
В контактах мыло. Напишите туда.
Уважаемый Алекс,
да, метод с Violentmonkey сработал, спасибо!
готов перечислить вам за помощь денюжку.
Владимир
Нашел платежную систему - перечислил
Спасибо. Получил.
Отправить комментарий