// ==UserScript== // @name YandexAntiAdvertisement // @namespace http://tampermonkey.net/ // @version 3.1 // @description:ru Скрывает из результатов поиска яндекса ссылки на сайты, помеченные как реклама // @description Hides avertisement sites results from search results in yandexserch machine // @author Kloshar // @match https://ya.ru/* // @match https://yandex.ru/* // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // @grant none // @downloadURL none // ==/UserScript== (function() { 'use strict'; //console.log("!!!"); /* надо понять что происходит во время перехода на следующую страницу элементы с рекламой остаются */ window.addEventListener("load", hideAdvertismentBlocks, false); function hideAdvertismentBlocks() { //console.log('Event fired'); try //блок поиска проплаченных ссылок { //console.log("В блоке try"); const li_elements = document.querySelector('ul#search-result').querySelectorAll('li'); //выбираем все списки с id=search-result, потом из них ищем все элементы списка в найденом списке //console.log("Lenght of li_elements is:", li_elements.length); //получили 19 элементов списка //надо обаботать все элементы списка for(let i = 0; i < li_elements.length; i++) { const li_elem = li_elements[i]; //первый элемент списка //console.log(i + " " + li_elem); //название элемента let firstDiv = li_elem.querySelector('div'); //получаем вложенный элемент (единственный) //console.log("firstDiv: ", firstDiv); //проверка на существование блока и наличия у него вложенного элемента if(firstDiv != null && firstDiv.childNodes.length > 1) { //console.log("Lenght of firstDiv.childNodes is: ", firstDiv.childNodes.length); let nextDiv = firstDiv.querySelector('div.Organic-Subtitle'); //console.log('nextDiv=', nextDiv); if(nextDiv) //проверка на null { //console.log('ok'); var spans = nextDiv.querySelectorAll('span'); //находит два span'а //надо обработать все на значения for(let k = 0; k < spans.length; k++) { //console.log(spans[k].textContent); if(spans[k].textContent == "Реклaма" || spans[k].textContent == "Pеклама" || spans[k].textContent == "Peкламa") //варианты написания разными символами { //console.log("Элемент скрыт: " + spans[k].textContent); //console.log(typeof(spans[k].textContent)); //console.log(spans[k].textContent == "Реклaма"); li_elem.style.backgroundColor = "gray"; //li_elem.style.visibility = 'hidden'; //скрывает, но оставляет пустое место li_elem.style.display = 'none'; //скрывает со смещением видимых элементов вверх } else { //console.log("Элемент не скрыт: " + spans[k].textContent); } } } } } } //end try //блок поиска проплаченных ссылок catch(ex) { console.log(ex) } } //end function hideAdvertismentBlocks() })();