Greasy Fork

Greasy Fork is available in English.

AC-baidu的搜索引擎样式再优化,对视觉中心优化-------请额外下载AC-baidu,此功能在AC-baidu基础上进行样式优化.

百度第一页查询csdn橙色,知乎蓝色,豆瓣绿色,百度灰色

目前为 2020-12-11 提交的版本。查看 最新版本

// ==UserScript==
// @name         AC-baidu的搜索引擎样式再优化,对视觉中心优化-------请额外下载AC-baidu,此功能在AC-baidu基础上进行样式优化.
// @namespace    http://tampermonkey.net/
// @version      0.2
// @description  百度第一页查询csdn橙色,知乎蓝色,豆瓣绿色,百度灰色
// @author       白水
// @match        https://www.baidu.com/s?*
// @match        https://www.google.*/search?*
// @grant        none
// @require      https://code.jquery.com/jquery-3.5.1.js
// ==/UserScript==

//--------------常用封装--------------------
//写入JQuery 3.5.1
//(function(url) { document.body.appendChild(document.createElement('script')).src = url; })("https://code.jquery.com/jquery-3.5.1.js");
//var $;//不能写入
//--------------定义--------------
var host = window.location.host, //host
    href = window.location.href; //href
/** get 指定JS querySelector的对象,返回一个对象
 * @param {*} querySelector JS 选择器
 */
function getByQuerySelector(querySelector) {
    if (!document.querySelector(querySelector)) return false;
    return document.querySelector(querySelector);
}
/** get 指定id属性值的对象,返回一个对象
 * @param {*} Id
 */
function getById(Id) {
    if (!document.getElementsById(Id)) return false;
    return document.getElementsById(Id);
}
/**get 指定TagName的对象 ,返回一个数组
 * @param {*} TagName 指定tag的对象
 */
function getByTagNameArr(TagName) {
    if (!document.getElementsByTagName(TagName)) return false;
    return document.getElementsByTagName(TagName);
}
/** get 指定Name属性的对象,返回一个数组
 * @param {*} Name 指定Name的对象
 */
function getByNameArr(Name) {
    if (!document.getElementsByName(Name)) return false;
    return document.getElementsByName(Name);
}
/** get 指定ClassName的对象,返回一个数组
 * @param {*} ClassName 类名称
 */
function getByClassNameArr(ClassName) {
    if (!document.getElementsByClassName(ClassName)) return false;
    return document.getElementsByClassName(ClassName);
}
/** get 筛选指定ClassName,利用getByClassNameArr数组返回一个数组
 * @param {*} ClassName 类名称
 */
function getClassUniqueArr(ClassName) {
    var oElements = getByClassNameArr(ClassName),
        boxArr = new Array();
    for (var i = 0, len = oElements.length; i < len; i++) {
        if (oElements[i].className == ClassName) {
            boxArr.push(oElements[i]);
        }
    }
    return boxArr;
}
Element.prototype.remove = function() {
    //   像那些属性节点,注释节点,文本节点等等根本不可能做父节点,所以可以说parentNode返回的一般都是父元素节点
    var Parent = this.parentNode;
    Parent.removeChild(this); //父元素节点里删除调用者
};
//--------------Function--------------
//--------------常用封装--------------------

(function() {
    'use strict';
    //运行逻辑 host.includes (t/f) func(){ (remove,ColorChange)}
    //搜索主页_主程序
    function SearchIndex() {
        //百度搜索
        function baidu() {
            getByQuerySelector("#s_tab").style.background = "rgb(255,255,255,0.5)"; //头部透明
            getByQuerySelector("#foot").remove(); //脚注去除
            //getByQuerySelector("#rs").remove(); //相关搜索去除???去除之后会出现不翻页
            getClassUniqueArr("result-op c-container new-pmd")[0].remove(); //其他人还在搜???好像只会出现一次
        }
        //谷歌搜索
        function google() {

        }
        //改变颜色
        function ColorChange(childrenClassName, parentClassName) {
            var SearchUrlArr = [
                { name: "CSDN|csdn", color: "rgb(255,140,0,0.5)" },
                { name: "知乎|zhihu", color: "rgb(65,105,225,0.5)" },
                { name: "博客园|cnblogs", color: "rgb(240,0,0,0.5)" },
                { name: "豆瓣|douban", color: "rgb(46,139,87,0.5)" },
                { name: "百度|baidu", color: "rgb(165,165,165,0.5)" },
                { name: "腾讯|qq", color: "rgb(165,165,165,0.5)" },
                { name: "搜狐|sohu", color: "rgb(165,165,165,0.5)" },
            ];
            //定义子元素集合
            var c = getByClassNameArr(childrenClassName),
                p;
            for (var i = 0, ilen = c.length; i < ilen; i++) {
                //查找指定父元素
                if (c[i].parentNode.parentNode.className === parentClassName) {
                    p = c[i].parentNode.parentNode;
                    //console.log("2");
                } else if (c[i].parentNode.parentNode.parentNode.className === parentClassName) {
                    p = c[i].parentNode.parentNode.parentNode;
                    //console.log("3");
                } else if (c[i].parentNode.parentNode.parentNode.parentNode.className === parentClassName) {
                    p = c[i].parentNode.parentNode.parentNode.parentNode;
                    //console.log("4");
                } else {
                    console.log("找不到父元素");
                }
                //p.style.background = "rgb(255,255,255,0.5)"
                for (var j = 0, jlen = SearchUrlArr.length; j < jlen; j++) {
                    if (RegExp(SearchUrlArr[j].name).test(c[i].text)) {
                        p.style.background = SearchUrlArr[j].color;
                        //console.log("j--1");
                        break;
                    }
                    if (j == jlen - 1) {
                        //console.log("j--2");
                        p.style.background = "rgb(255,255,255,0.5)";
                        break;
                    }
                }
                //console.log("j--3");
                /* 
                if (j == jlen) {
                    //恒等于最后一次输出即为 j=jlen;
                    //p.style.background = "rgb(255,255,255,0.5)";
                }
                */
            }
        }
        if (host.includes("baidu")) {
            baidu();
            ColorChange("c-showurl c-color-gray", "result c-container new-pmd");
        } else if (host.includes("google")) {
            google();
            ColorChange(document.getElementsByClassName("g"), document.getElementsByClassName("g"));
        } else {
            console.log("不存在");
        }
    }
    //主程序 延迟
    window.onload = function() { setTimeout(SearchIndex(), 0); };
    //jQuery预载画面
    $(document).ready(SearchIndex());
})();