Greasy Fork

Greasy Fork is available in English.

NoYandexAds+Numeration

Remove ads in Yandex search results + Numeration

目前为 2015-11-30 提交的版本。查看 最新版本

// ==UserScript== 
// @name        NoYandexAds+Numeration
// @namespace   yandsearch 
// @match       http://*/yandsearch?* 
// @match       https://*/yandsearch?* 
// @match       https://yandex.ru/search/*
// @match       https://yandex.*/search/*
// @include 	*yandex*
// @description Remove ads in Yandex search results + Numeration 
// @author      ManHunter / PCL / Sanek508
// @version     3.0.3
// ==/UserScript==  

 (function () { 
    window.removeads = function(event) { 
        var elems=document.getElementsByTagName('div'); 
        var re0=/(^|\s)(serp-adv)(\s|$)/; 
        var re1=/(^|\s)(serp-block)(\s|$)/; 
        var re2=/"serp-item__label"/;
        var re3=/"serp-adv__item"/;
        for (var i=0; i<elems.length; i++) { 
            var el=elems[i];		
            if (re0.test(el.className)) { 
				el.style.display='none'; 
			  }				
            else if (re1.test(el.className)) { 
                var st=getComputedStyle(el,''); 
                var bg=st.backgroundColor; 
                // Фон у рекламы отличается от прозрачного 
                if (bg!='transparent' && bg!='rgba(0, 0, 0, 0)') { 
                    // Удалить 
                    el.style.display='none'; 
                } 
                // Надпись "Реклама" 
                else if (re2.test(el.innerHTML)) { 
                    // Удалить 
                    el.style.display='none'; 
                }
    		else if (re3.test(el.innerHTML)) { 
                    // Удалить 
                    el.style.display='none'; 
               } 
            } 
        } 
    } 
    window.addEventListener('DOMNodeInserted', removeads, false); 
    removeads();  
 })();

 var pp = 10,
   p = 1,
   //можете добавить сюда свои сайты для подсветки
   url = ['http://alpha-t.org/','http://alpha-t.ru/','http://agp24.ru/','http://agrp24.ru/','http://ypb24.ru/','http://remontika-24.ru/']; /* подсвечиваемый домен */
/* корректировка количества результатов на странице */
 var nd = decodeURIComponent(document.cookie).match(new RegExp("nd:([^#.:]*)"));
 if (nd) {
   nd = parseInt(nd[1].trim());
   if (typeof nd === "number" && isFinite(nd)) pp = nd
 }
/* Определение текущей страницы */
 var b = document.getElementsByClassName("button_checked_yes");
 if (b.length > 0) {
   b = parseInt((document.all ? b[0].innerText : b[0].textContent).trim());
   if (typeof b === "number" && isFinite(b)) p = b
 }
 var start = (p - 1) * pp;
/* Перебор блоков выдачи */
 [].forEach.call(document.getElementsByClassName("serp-block"), function (e) {
   /* Подсветка контекстной рекламы и её исключение из нумерации */
   if (e.querySelectorAll(".serp-adv__title-text,.serp-item__label").length > 0) {
     e.setAttribute("style", "background:#ffe5e5");
	 e.style.display='none';
   } else {
     /* Перебор результатов в блоке выдачи */
     [].forEach.call(e.querySelectorAll(".serp-item_plain_yes,.z-address"), function (e) {
       start++;
       /* Создание элемента нумерации */
       var t = document.createElement("span");
       t.setAttribute("style", "float:left;margin-left:-20px;padding-top:13px");
       t.innerHTML = start + ".";
       e.insertBefore(t, e.firstChild);
       /* Перебор ссылок результата и подсветка url */
		 
       [].forEach.call(e.getElementsByClassName("serp-url__link"), function (t) {
         if (t.hasAttribute("href")) {
		  url.forEach(function(item) {
           if (t.getAttribute("href").match(new RegExp(item, "i"))) {
             t.setAttribute("style", "background:#c4df9b");
			 e.setAttribute('style', 'border:1px solid #c4df9b');
           }
		  });
         }
       });
     });
   }
})