Web сайты

Предложенный мной способ с помощью плагина 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;';
};
 
// Создаем экземпляр наблюдателя с указанной функцией обратного вызова
const observer = new MutationObserver(callback);
 
// Начинаем наблюдение за настроенными изменениями целевого элемента
observer.observe(target, config);
 
// Позже можно остановить наблюдение
//observer.disconnect();  
 
 
})();

Проблемы были две. Одна заключается в том, что имена стилей меняются при загрузке страницы, а вторая - это то, что данные, которые необходимо отфильтровать, загружаются после загрузки страницы и поэтому пришлось отлавливать события изменения содержимого страницы уже после ее загрузки.
Тестировал только у себя - работает. Но у меня работает и первый способ с помощью CSS, поэтому как данный метод отработает у других пока не знаю.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • Строки и параграфы переносятся автоматически.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <1c7>, <drupal5>, <drupal6>, <javascript>, <php>. Beside the tag style "<foo>" it is also possible to use "[foo]".