jsKillAD

查杀页面浮动广告

Verze ze dne 10. 01. 2015. Zobrazit nejnovější verzi.

K instalaci tototo skriptu si budete muset nainstalovat rozšíření jako Tampermonkey, Greasemonkey nebo Violentmonkey.

K instalaci tohoto skriptu si budete muset nainstalovat rozšíření jako Tampermonkey nebo Violentmonkey.

K instalaci tohoto skriptu si budete muset nainstalovat rozšíření jako Tampermonkey nebo Violentmonkey.

K instalaci tohoto skriptu si budete muset nainstalovat rozšíření jako Tampermonkey nebo Userscripts.

You will need to install an extension such as Tampermonkey to install this script.

K instalaci tohoto skriptu si budete muset nainstalovat manažer uživatelských skriptů.

(Už mám manažer uživatelských skriptů, nechte mě ho nainstalovat!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(Už mám manažer uživatelských stylů, nechte mě ho nainstalovat!)

// ==UserScript==
// @name        jsKillAD
// @namespace   jsKillAD
// @description 查杀页面浮动广告
// @description:en Kill AD on page
// @include     http://*
// @include     https://*
// @exclude     http://*.mail.*/*
// @exclude     http://*mimg.127.net/*
// @exclude     http://*.csdn.net/postedit/*
// @exclude     http://*share*.qq.com/*
// @exclude     http://*.gsmn.com.cn/*
// @exclude     http://*115.com/*
// @run-at      document-end
// @grant       none
// @version     1.1
// ==/UserScript==
(function () {
	var bc = Array.prototype.forEach;//Callback

	function getStyle(o, s) {
		if(o.style[s]){//内联样式
			return o.style[s];
		}
		if(document.defaultView && document.defaultView.getComputedStyle){//DOM
			//s = s.replace(/([A-Z])/g,'-$1').toLowerCase();
			var x = document.defaultView.getComputedStyle(o,'');
			return x&&x.getPropertyValue(s);
		}
	}

	function testStyle(o) {
		var s = getStyle(o, "position");
		return s === "fixed" || s === "absolute";
	}

	function isFloatLay(o) {
		var x = o.offsetParent;
		return !x || x.tagName === "BODY" || x.tagName === "HTML";
	}

	function delNode(x) {
		x.parentNode.removeChild(x);
	}

	function scan(el) {
		["iframe", "img", "object", "embed"].forEach(function(s) {
			bc.call(el.getElementsByTagName(s), function(x) {
				while (x) {
					if (isFloatLay(x)) {
						//要删除的层得同时满足二个条件
						if (testStyle(x)) {delNode(x);}
						break;
					}//else
					x = x.offsetParent;
				}
			});
		});
	}

	//document.addEventListener("DOMContentLoaded", function(){scan(document);}, false);
        scan(document);
	bc.call(frames, function(x) {
		try {
			scan(x.contentDocument);
		} catch (e) {}
	});
})();