Greasy Fork 支持简体中文。

百度搜索 - 优化

1、屏蔽百度推广 2、关闭百度广告联盟信息收集 3、将相关搜索移动到最上面 4、绑定快捷键 5、布局调整

目前為 2017-08-24 提交的版本,檢視 最新版本

// ==UserScript==
// @name         百度搜索 - 优化
// @namespace    http://tampermonkey.net/
// @home-url     https://greasyfork.org/zh-CN/scripts/31642
// @description  1、屏蔽百度推广 2、关闭百度广告联盟信息收集 3、将相关搜索移动到最上面 4、绑定快捷键 5、布局调整
// @version      1.1.3
// @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 $double = null;
        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){
            var $arrays = [
                "#content_left>.sp-separator~.c-container:odd",
                "#content_left>.sp-separator~.c-container:nth-child(10n+1)",
            ];
            GM_addStyle("#content_left>.sp-separator{visibility: hidden;}");
            $parent = $("#content_left>.sp-separator");
            $selector = $($arrays.join());
            $div.after($parent);
            $parent.remove();
            $selector.appendTo($("#double"));

        }
    },
    //居中显示
    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();
    }
};