Greasy Fork is available in English.
1、屏蔽百度推广 2、关闭百度广告联盟信息收集 3、将相关搜索移动到最上面 4、绑定快捷键 5、布局调整
当前为
// ==UserScript==
// @name 百度搜索 - 优化 - demo
// @namespace http://tampermonkey.net/
// @home-url http://greasyfork.icu/zh-CN/scripts/31642
// @description 1、屏蔽百度推广 2、关闭百度广告联盟信息收集 3、将相关搜索移动到最上面 4、绑定快捷键 5、布局调整
// @version 1.1.1
// @author 浮生未歇
// @match http*://www.baidu.com/*
// @require https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js
// @resource baiduCommonStyle https://coding.net/u/SSHIN/p/Tampermonkey/git/raw/master/baiduCommonStyle.css
// @resource baiduMyMenuStyle https://coding.net/u/SSHIN/p/Tampermonkey/git/raw/master/baiduMyMenuStyle.css
// @resource baiduOnePageStyle https://coding.net/u/SSHIN/p/Tampermonkey/git/raw/master/baiduOnePageStyle.css
// @resource baiduTwoPageStyle https://coding.net/u/SSHIN/p/Tampermonkey/git/raw/master/baiduTwoPageStyle.css
// @run-at document-body
// @grant GM_addStyle
// @grant GM_getResourceText
// @grant GM_setValue
// @grant GM_getValue
// ==/UserScript==
(function(){
"use strict";
//动态监视DOM树的变化
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
var observer = new MutationObserver(mutationfunc);
var wrapper = document.querySelector("#wrapper");
observer.observe(wrapper, {
"attributes": true,
"characterData":true,
"subtree":true,
// "attributesFilter": ["class"],
});
// 动态加载函数
function mutationfunc(){
//配置初始化
Config.init();
//如果网址匹配
if(Check.matchURL()){
//样式初始化
StyleManger.init();
//屏蔽广告
HideADS.init();
//控制管理初始
ControlManager.init();
//事件管理
EventManager.init();
}
}
})();
/******************* 功能模块 ****************************/
//配置
var Config = {
//获取列码数
getPageNum:function(){
return GM_getValue("pagenum",0);
},
//设置列码数
setPageNume:function($num){
GM_setValue("pagenum",$num);
},
//初始化
init:function(){
console.log("ConfigManager");
this.getPageNum();
}
};
//监测点
var Check = {
//匹配网址
matchURL:function(){
var $currentURL = location.href;
var $matchURL = "www.baidu.com/s";
var $selector = $("#content_left");
if($currentURL.indexOf($matchURL) > 0 || $selector.length > 0){
return true;
}else{
return false;
}
},
//插入检测点
matchPoint:function(){
if($("#content_left>#check").length < 1){
var $div = $("<div id='check'></div>");
var $parent = $("#content_left");
$div.prependTo($parent);
return true;
}else{
return false;
}
},
};
//屏蔽广告、推广和关闭 Cookie
var HideADS = {
//屏蔽广告
hideCommonAds:function(){
var $ADS = [
"#content_left>div[style*='display:block !important;']",
"#content_left>div:not([id])",
"#content_left>#clone",
];
var $selectors = $( $ADS.join());
$selectors.remove();
},
//屏蔽再次出现的广告
hideLaterAds:function(){
var $selector = $("#content_left>div[id='1']");
var $result = $selector.next().attr('id') == 2;
if($result){
$selector.attr("id","a1");
}
GM_addStyle("#content_left > div[id='1'],#content_left .result~div[id='1'] {display: none!important;}");
},
//关闭广告网盟 Cookie,防止隐私收集
closeAdsCookie:function(){
var cpro_url = "http://help.wangmeng.baidu.com/cpro.php";
var img = document.createElement("img");
img.src = cpro_url + "?pry=" + 1 + "&_t=" + (new Date()).getTime();
},
//初始化
init:function(){
console.log("ADSManager");
this.hideCommonAds();
this.hideLaterAds();
this.closeAdsCookie();
}
};
//样式管理
var StyleManger = {
//导入 CSS 样式
importStyle:function($cssStyles){
for(var $i in $cssStyles){
var $cssTxt = GM_getResourceText ($cssStyles[$i]);
GM_addStyle ($cssTxt);
}
},
//加载普通样式
loadCommonStyle:function(){
//防止多次导入
if(Check.matchPoint()){
var $cssStyles = ["baiduCommonStyle"];
this.importStyle($cssStyles);
}
},
//加载自定义菜单样式
loadMyMenuStyle:function(){
var $cssStyles = ["baiduMyMenuStyle"];
this.importStyle($cssStyles);
},
//加载单页样式
loadOnePageStyle:function(){
var $cssStyles = ["baiduOnePageStyle"];
this.importStyle($cssStyles);
},
//加载双页样式
loadTwoPageStyle:function(){
var $cssStyles = ["baiduTwoPageStyle"];
this.importStyle($cssStyles);
},
//初始化
init:function(){
console.log("StyleManager");
this.loadCommonStyle();
this.loadMyMenuStyle();
}
};
//控制管理
var ControlManager = {
//插入自定义菜单
inserCustomMenu:function(){
if($("#myuser").length < 1){
var $parent = $("#u");
var $div=$("<ul id='myuser'><li>自定义<ul class='mycustom'><li>普通样式</li><li>居中单列</li><li>居中双列</li></ul></li></ul>");
$div.insertBefore($parent);
StyleManger.loadMyMenuStyle();
}
},
//双页显示
twoPageDisplay:function(){
var $div = $("<div id='double'></div>");
var $parent = null;
var $selector = null;
if($("#content_left>#double").length < 1){
$parent = $("#content_left");
$selector = $("#content_left>.c-container:odd");
$div.prependTo($parent);
$selector.prependTo($("#double"));
}
//兼容自动翻页脚本
if($("#content_left>.sp-separator").length >0){
$parent = $("#content_left>.sp-separator");
$selector = $("#content_left>.sp-separator~.c-container:odd");
$div.after($parent);
$selector.appendTo($("#double"));
$("#content_left>.sp-separator").remove();
}
},
//居中显示
centerDisplay:function(){
var $result = Config.getPageNum();
if($result === 1){//单页居中
StyleManger.loadOnePageStyle();
}else if($result === 2){ //双页居中
this.twoPageDisplay();
StyleManger.loadTwoPageStyle();
}
},
//绑定快捷键
bindQuickHotkey:function(){
$(document).keydown(function(event) {
//上一页 Ctrl + <-
if(event.keyCode == 37 && event.ctrlKey) {
$(".n:first").click();
}
//下一页 Ctrl + ->
if(event.keyCode == 39 && event.ctrlKey) {
$(".n:last").click();
}
//搜索框 Ctrl + Enter
if(event.keyCode == 13 && event.ctrlKey ) {
$("#kw").select();
}
});
},
//初始化
init:function(){
console.log("ControltManager");
this.inserCustomMenu();
this.centerDisplay();
this.bindQuickHotkey();
}
};
//事件管理
var EventManager = {
//绑定菜单事件
menuEvent:function(){
var $selector = $("#myuser .mycustom li");
$selector.each(function(i){
$(this).click(function(){
Config.setPageNume(i);
location.href = location.href;
});
});
},
//初始化
init:function(){
console.log("EventManager");
this.menuEvent();
}
};