// ==UserScript== // @name 百度搜索 - 优化 // @namespace http://tampermonkey.net/ // @home-url https://greasyfork.org/zh-CN/scripts/31642 // @description 1、屏蔽百度推广 2、关闭百度广告联盟信息收集 3、绑定快捷键 4、布局调整 5、居中单列(可选) 6、居中双列(可选) // @version 1.5.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 // @run-at document-end // @grant GM_addStyle // @grant GM_getResourceText // @grant GM_setValue // @grant GM_getValue // @downloadURL none // ==/UserScript== (function(){ "use strict"; /******************* 功能模块 ****************************/ //配置 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 $matchURL1 = "www.baidu.com/s"; var $matchURL2 = "www.baidu.com/baidu"; if($currentURL.indexOf($matchURL1) > 0 | $currentURL.indexOf($matchURL2) > 0){ return true; }else{ return false; } }, //防止多次加载 checkOneLoad:function($class){ var existCLASS = "#content_left>."+$class; var $elements = $("#content_left>.c-container"); if($(existCLASS).length < 1){ $elements.addClass($class); return true; }else{ return false; } }, }; //屏蔽广告、推广和关闭 Cookie var HideADS = { //屏蔽广告 hideCommonAds:function(){ var $ADS = [ "#content_left>div[style*='display:block !important;']", "#content_left>div[id^='30']", "#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(){ $(document).ready(function(){ if(Check.checkOneLoad("WangMengPoint")){ 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.checkOneLoad("CommonPoint")){ var $cssStyles = ["baiduCommonStyle"]; this.importStyle($cssStyles); } }, //加载自定义菜单样式 loadMyMenuStyle:function(){ if(Check.checkOneLoad("MyMenuPoint")){ var $cssStyles = ["baiduMyMenuStyle"]; this.importStyle($cssStyles); } }, //加载单页样式 loadOnePageStyle:function(){ if(Check.checkOneLoad("OnePagePoint")){ var $cssStyles = ["baiduOnePageStyle"]; this.importStyle($cssStyles); } }, //加载双页样式 loadTwoPageStyle:function(){ if(Check.checkOneLoad("TwoPagePoint")){ var $cssStyles = ["baiduTwoPageStyle"]; this.importStyle($cssStyles); } }, //初始化 init:function(){ console.log("StyleManager"); this.loadCommonStyle(); this.loadMyMenuStyle(); }, //导入一次CSS importOnceCSS(){ this.importStyle(["baiduCommonStyle"]); this.importStyle(["baiduMyMenuStyle"]); } }; //控制管理 var ControlManager = { //插入自定义菜单 inserCustomMenu:function(){ //文档加载完成再运行 $(document).ready(function(){ if( Check.checkOneLoad("InsertCustonMenuPoint")){ if($("#myuser").length < 1){ var $parent = $("#u"); var $div=$("
  1. 自定义
    1. 普通样式
    2. 居中单列
    3. 居中双列
"); $div.prependTo($parent); } } }); }, //双页显示 twoPageDisplay:function(){ var $div = $("
"); var $double = null; var $parent = null; var $selector = null; //文档加载完成再运行 $(document).ready(function(){ 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){ GM_addStyle("#content_left>.sp-separator{opacity: 0;}"); $parent = $("#content_left>.sp-separator"); $selector = $("#content_left>.sp-separator~.c-container:odd"); $div.after($parent); $parent.remove(); $selector.appendTo($("#double")); } }); }, //居中显示 centerDisplay:function(){ var $result = Config.getPageNum() || null; if($result === 1){//单页居中 StyleManger.loadOnePageStyle(); }else if($result === 2){ //双页居中 StyleManger.loadTwoPageStyle(); this.twoPageDisplay(); } }, //绑定快捷键 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.centerDisplay(); this.inserCustomMenu(); 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(); }, }; /************************* 执行函数 *************************************/ // 动态加载函数 function mutationfunc(){ //如果网址匹配 if(Check.matchURL()){ //配置初始化 Config.init(); //样式初始化 StyleManger.init(); //屏蔽广告 HideADS.init(); //控制管理初始 ControlManager.init(); //事件管理 EventManager.init(); } } /************************* 启动控制 *************************************/ //第一次启动,如果网址匹配 if(Check.matchURL()){ //样式加载一次 StyleManger. importOnceCSS(); //控制管理初始 ControlManager.centerDisplay(); } //文档加载完成再运行 $(document).ready(function(){ // 动态加载函数 mutationfunc(); }); try{ //动态监视DOM树的变化 var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver; if(MutationObserver){ var observer = new MutationObserver(mutationfunc); var wrapper = document.querySelector("#wrapper"); observer.observe(wrapper, { "attributes": true, "characterData":true, "subtree":true, "attributesFilter": ["class"], }); // 动态加载函数 mutationfunc(); }else{ setInterval(function(){ // 动态加载函数 mutationfunc(); },500); } }catch(e){ } })();