// ==UserScript==
// @name 百度搜索去广告
// @namespace http://tampermonkey.net/
// @version 3.0
// @description 小庄的脚本园
// @author zjazn
// @match *://*.baidu.com/*
// @match *://*.*.baidu.com/*
// @grant GM_getValue
// @grant GM.getValue
// @grant GM_setValue
// @grant GM.setValue
// @run-at document-start
// @match <$URL$>
// @license MIT
// ==/UserScript==
(function () {
var i = 0;
//脚本框架-自建
function $(str, two, three,four) {
let ctl = {
//给元素添加一个监听事件
listen: function (event, fun) {
for (var i = 0; i < objs.length; i++) {
objs[i].addEventListener(event, fun);
}
},
//当存在元素且length大于或等于count时返回true
exist: function (count) {
return (objs[0] != null) && objs.length >= count;
},
css: function (style_str) {
for (var i = 0; i < objs.length; i++) {
if (objs[i] != null) {
objs[i].style = style_str
}
}
return ctl;
},
//将指针转向指定对象的n父对象
father: function (second, vt) {
let fathers = objs;
for (var j = 0; j < second; j++) {
var new_father = [];
for (var i = 0; i < fathers.length; i++) {
new_father[new_father.length] = fathers[i].parentNode;//获取a的父节点;
}
fathers = new_father;
}
objs = fathers;
console.log("最终父节点:", objs);
return ctl;
},
//排除父子关系
exfs: function () {
for (var i = 0; i < objs.length; i++) {
if (objs[i].querySelectorAll(str.split(",")[0]).length > 0) {
objs.splice(i, 1);
//console.log("存在",objs);
}
}
return ctl;
},
//fun1是tab离开时调用, fun2是tab回到时调用
tab: function (fun1, fun2) {
document.addEventListener('visibilitychange', function () { //浏览器切换事件
if (document.visibilityState == 'hidden') { // 离开当前tab标签
if (fun1 != null) {
fun1();
}
} else { // 回到当前tab标签
if (fun2 != null) {
fun2();
}
}
});
},
//timeout_time当不活跃超过时间,fun1是超时调用的函数,fun2是重新活跃时调用的 & 且内部又使用了节能机制
inactive: function (timeout_time, fun1, fun2) {
var tor_box = null;
var is_continue = false;
document.onmousemove = function () {
if (tor_box != null) {
clearTimeout(tor_box)
}
if (is_continue) {
fun2()
is_continue = false;
}
tor_box = setTimeout(function () {
fun1();
is_continue = true;
}, timeout_time)
}
},
timeor_mean: function (timeout_time, torx, fun1, fun2) {
//start的节能系统
var is_start = false;
if (torx != null) {
is_start = true;
}
//隐式节能模式
$().tab(function () {
console.log("离开了");
fun1()
//clearInterval(tor)
is_start = false;
}, function () {
console.log("重新活了");
fun2()
//start()
is_start = true;
})
//显式节能模式
$().inactive(timeout_time, function () {
console.log("不活跃了");
fun1()
//clearInterval(tor)
is_start = false;
}, function () {
console.log("重新活跃");
if (!is_start) {
fun2()
//start()
is_start = true;
}
});
},
html: function(between_block="") {
var html_text = ""
for (var i = 0; i < objs.length; i++) {
if (objs[i] != null) {
html_text += objs[i].innerHTML
html_text += between_block
}
}
return html_text;
}
}
if (str == null) return ctl;
//安全调用函数
function scall(fun,bfun) {
if((typeof fun) == "function") {
fun()
}else {
if((typeof bfun) == "function") {
bfun
}
}
}
if ((typeof str) == "function") {
var n = 0;
var timeout = setInterval(function () {
//关键代码开始
if (two != null) {
if ($(two).exist(three == null ? 0 : three)) {
//当找到指定特定的节点且满足个数时调用
str();
clearInterval(timeout);
}else {
//当找不到指定特定的节点且不满足个数时调用,在这里不能关闭timeout定时器,且如果four参数是一个函数不但要调用还意味着要关闭定时器,但注意此时已经足够内容加载完成了
if((typeof four) == "function") {
four()
clearInterval(timeout)
}
}
} else {
//当第二个参数为null时调用,且此时第一个参数是函数
str()
clearInterval(timeout);
}
//关键代码结束
n++
if (n > 12500) {
clearInterval(timeout);
}
}, 40)
return;
}
let objs = [];
let objs_str = str.split(",");
for (var i = 0; i < objs_str.length; i++) {
var inter = document.querySelectorAll(objs_str[i]);
for (var j = 0; j < inter.length; j++) {
objs[objs.length] = inter[j];
}
}
return ctl;
}
function slide(top_length, left_length) {
window.scrollTo({ top: top_length, left: left_length, behavior: 'smooth' })
}
var tor = null;
var start = function () {
tor = setInterval(function () {
console.log("打扫或监督中!");
//关键代码开始
//开始清理百度搜索广告
try {
Array.from(
document.querySelectorAll('#content_left>div'))
.forEach(el =>
/>广告</.test(el.innerHTML) && el.parentNode.removeChild(el)
)
ct++;
} catch (e) { }
//清理百度搜索广告完毕
//美化样式
$("#content_right,#bottom-ads-container,.qbleftdown,.qb-side,#aside ,#fresh-share-exp-e,.task-panel-entrance,.wgt-like,.task-list-button,.wgt-bottom-union,.jump-goto-star,.task-panel-entrance,.wgt-like,#side").css("display:none");
$(".c-container").exfs().css("margin-bottom: 30px;border-left: 5px solid #4dc86f; padding-left:20px; ");
}, 80);
}
//清理其它百度系广告
$(start, ".c-container", 10)
//tor的节能模式
$().timeor_mean(5000, tor, function () {
clearInterval(tor)
}, function () {
start()
})
$(function () {
$(".qb-section,.main-content").css("width:100%");
$("#qb-content").css("width:100%");
$(".content").css("border-left:3px solid #4dc86f;padding: 30px; margin: 15px 0px");
$(".qbleftdown,.answerlist,.task-list-button,.jump-goto-star,#qb-side,#wgt-left-promo,.task-panel-entrance").css("display:none")
$("#wgt-like").css("display:block;height:0px");
$(".task-panel-entrance").css("display:block;height:0px");
$("#format-exp").css("border-left:5px solid #4dc86f; padding: 30px ; margin: 15px 0px")
$(".list-icon").css("background:red")
$("#ui-tooltip-0").css("display:block;height:0px; padding:0px; margin:0px;opacity: 0")
})
//清理百度文库
/*$(function() {
var integrityurl = window.location.href;
if(integrityurl.indexOf("https://wenku.baidu.com/view/") > -1) {
console.log("开始过滤")
var text_open = setInterval(function(){
$(function(){
document.getElementsByClassName("read-all")[0].click();
console.log("点击了展开")
},".read-all",1)
},1000)
var st = 4000;
var ot = 800;
var count = st/ot;
var toor = setInterval(function(){
slide(document.body.scrollHeight*(((st/ot)-count)/(st/ot)),0)
count--
count=count<0?0:count
},ot)
setTimeout(function(){
slide(99999999999999999,0) //确保能滑到最下面
setTimeout(function(){
clearInterval(text_open)
clearInterval(toor)
//如果找得到 .doc-title-wrap>.ppt 就是一个ppt文档
$(function() {
console.log("这是一个ppt文档!")
document.body.innerHTML = "<div id='box' style='width:100%'>"+$("#reader-container>*").html()+"</div>"
},".doc-title-wrap>.ppt",1,function(timeout) {
console.log("这不是一个ppt文档!")
document.body.innerHTML = "<div id='box' style='width:100%'>"+$("#reader-container").html()+"</div>"
})
$(".ppt-image-wrap>*").css("display:block;width:100%")
$(".ppt-image-wrap").css("display:block;margin:10px 4%")
slide(0,0)
$(".hx-warp").css("display:none")
},3000)
},st)
}
},".doc-title,#reader-container,.wk-logo-icon",1)*/
})();