使用教程
- 浏览器安装tampermonkey插件,这个在各个浏览器几乎都能安装的。比如UC浏览器,点击扩展中心,在里面搜索tampermonkey,然后安装就可以了。
- 安装后一般会显示在右上角,比如:
- 点击油猴子图标,再选择仪表盘
- 点击这个图标,添加脚本
- 粘贴下面的修改版代码,然后点击保存按钮
- 然后就完成啦
- 如果要更新tampermonkey插件的话,可以先把插件删除掉,再重新安装就好了。
描述
因为百度有时是局部刷新修改页面内容,所以使用原脚本的时候,会出现必须手动刷新页面才能去除广告的情况。还有,在点击某些链接之后,再回去看搜索页面,会看不见搜索结果,这个是因为被一个“关联推荐”广告页遮住了,针对这我也做了些处理。主要修改内容如下:
- 修改代码逻辑,使脚本更加精简
- 针对局部刷新问题的处理:定时判断是否有未隐藏的广告块
- 模拟鼠标点击,关闭“关联推荐”广告
- 修改了一些原脚本中不友好的词汇,比如 **ck
- 增加了一个match ,还增加了对已登录状态下的首页搜索框和搜索按钮,以及浮动框不进行隐藏的判断
其它暂时还没发现什么问题,以后我会持续修改的,具体看修改后的代码吧。
修改版代码
// ==UserScript==
// @name 去除百度广告
// @namespace http://tampermonkey.net/
// @version 1.2
// @description 去掉百度页面上的广告
// @author axios
// @match https://www.baidu.com/*
// @match http://www.baidu.com/s*
// @match http://news.baidu.com/s*
// @match https://www.baidu.com/s*
// @match https://news.baidu.com/s*
// @grant none
// ==/UserScript==
window.onload = function(){
console.log("开始干活!");
var console_log = 0;//console日志,1打印日志,0不打印日志
//1启用,0关闭
var option = {
"ad" : 1,//推广
"right" : 1,//右边
"baike" : 0,//百科
"img" : 1,//图片
"news" : 1,//新闻
"tieba" : 1,//贴吧
"win10" : 1,//Win10
"video" : 1,//视频
"comic" : 1,//漫画
"stock" : 1,//股票
"map" : 1,//地图
"software": 1 //软件
};
var obj = {
"ad" : [".ct-content",".ec_tuiguang_ppimlink",".hint_toprq_tips"], //推广
"right" : ["#content_right"], //右边
"baike" : [".c-border"], //百科
"img" : ["#ala_img_results",'.op-img-covers-desktop-cont','.c-showurl'],//图片
"news" : ['.c-offset'], //新闻
"tieba" : ['.op-tieba-general-maintable','.op-tieba-star-maintable','.op-tieba-general-lookmore.op-tieba-general-mainpl'],//贴吧
"win10" : ['.opt_software_showarea'], //Win10
"video" : ['.c-row.zx-tv-video-topinfo','.op-zx-new-tvideo-drlt'],//视频
"comic" : ['.op_cartoon.click-parent-reward'],//漫画
"stock" : ['.op_shares_simple'], //股票
"map" : ['.op_map_twoplace_table'], //地图
"software": ['table.c-table.op_pcsoft_table','.c-gap-top'] //软件
};
hideAdvertisement();
function getElementsByClassName(a, b) {
if (a.getElementsByClassName) {
return a.getElementsByClassName(b);
} else {
return function c(m, k) {
if (k === null) {
k = document;
}
var h = [], g = k.getElementsByTagName("div"), d = g.length, l = new RegExp("(^|\\s)" + m + "(\\s|$)"), f, e;
for (f = 0, e = 0; f < d; f++) {
if (l.test(g[f].className)) {
h[e] = g[f];
e++;
}
}
return h;
}(b, a);
}
}
function Id_hide(id){
if($(id).css('display')=="block"){
$(id).css('display', 'none');
if(console_log){console.log('隐藏-> '+id );}
}
}
function hideAdvertisement() {
if(option.ad == 1){//推广
var page;
var homeIndex = ['div#u_sp','div#s_fm','div#s_wrap','div#s_main'];//已登录状态下的首页搜索框和搜索按钮,以及浮动框
if (document.all || document.getElementById){
page = document.getElementsByTagName("div");
}
for(var i = 0;i < page.length;i++){
var div_id;
if(page[i].id !== ""){
div_id = page[i].id;
}
}
}
var option_i , obj_i , del;
for(option_i in option){
if(option[option_i]){
del = obj[option_i];
for(obj_i in del){
Id_hide(del[obj_i] );
}
}
}
$(".m").each(function (index,element) {
if($(element).html() == "广告" && $(element).parent().parent().css('display')!='none'){
if(console_log){console.log('隐藏搜索结果中的广告->'+index);}
$(element).parent().parent().css('display','none');
}
if($(element).html() == "评价" && $(element).parent().parent().parent().css('display')!='none'){
if(console_log){console.log('隐藏搜索结果中的加v广告->'+index);}
$(element).parent().parent().parent().css('display','none');
}
});
$("a span").each(function (index,element) {
if($(element).html() == "广告" && $(element).parent().parent().css('display')!='none'){
if(console_log){console.log('隐藏搜索结果中的广告->'+index);console.log($(element).html());}
$(element).parent().parent().css('display','none');
}
if($(element).html() == "评价" && $(element).parent().parent().parent().css('display')!='none'){
if(console_log){console.log('隐藏搜索结果中的加v广告->'+index);}
$(element).parent().parent().parent().css('display','none');
}
});
}
setInterval (function (){
if($('.rrecom-btn-close')){
$('.rrecom-btn-close').click();
}
hideAdvertisement();
}, 100);
};
效果
使用之前
使用之后
赞~
虽然他有局部刷新,只需要设为透明,position absolute层级负无穷就好了,希望改进后可以发给我一下哈哈