Greasy Fork is available in English.

清理百度贴吧插入广告

清理掉贴吧列表和贴子中插入的广告(轻量级)

ของเมื่อวันที่ 28-07-2016 ดู เวอร์ชันล่าสุด

// ==UserScript==
// @name         清理百度贴吧插入广告
// @icon         http://www.studstu.com/fximg/delicious.gif
// @namespace    moekai.moe.cleartiebaad
// @version      0.6
// @description  清理掉贴吧列表和贴子中插入的广告(轻量级)
// @author       YIU
// @include      *://tieba.baidu.com/*
// @grant        none
// @compatible   chrome OK
// @compatible   firefox OK
// ==/UserScript==

(function() {

	/* 删除列表AD */
	function DelTeibaListAD(){
		//列表区域检查
		var oa = document.getElementById('thread_list');
		if(!oa) return;

		var os = oa.children;
		var oss = os.length;

		for(var o=0; o<oss; o++)
		{
			var oi = os[o];
			if(oi){
				if(!oi.classList.contains('thread_top_list_folder') && !oi.attributes['data-field'])
				{
					oi.parentNode.removeChild(oi);
				}
			}
		}

	}

	/* 删除贴子AD */
	function DelTeibaPostAD(){
		//帖子区域检查
		var oa = document.getElementById('j_p_postlist');
		if(!oa) return;

		//对于翻页嵌套的节点选择最后一个合适的节点
		var ob = oa.childNodes;
		var os = ob[ob.length-1].className == 'p_postlist' ? ob[ob.length-1].children : oa.children;
		var oss = os.length;

		for(var o=0; o<oss; o++)
		{
			var oi = os[o];
			if(oi){
				var pcss = oi.classList.contains('l_post');
				if(!pcss || pcss && !oi.attributes['data-field'] || oi.attributes['data-isautoreply'])
				{
					oi.parentNode.removeChild(oi);
				}
			}
		}

	}

	/* Main */
	window.onload = function(){
		//清理第一次加载完成的页面
		DelTeibaListAD();
		DelTeibaPostAD();

		//避免ajax加载时没有执行清理的监视滚动条方法
		window.onscroll = function(e){
			//兼容型获取滚动条高度
			var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;

			//设置滚动条范围 每10距离检查一次
			if(Number.isInteger(scrollTop/10)){
				DelTeibaListAD();
				DelTeibaPostAD();
			}
		};

	};

})();