聚合搜索引擎切换导航[手机版][移动端]

在搜索顶部显示一个聚合搜索引擎切换导航,模拟M浏览器的综合搜索引擎。专注手机网页搜索引擎切换,纯粹的搜索。SearchJump、搜索跳转、聚合搜索。

目前为 2023-04-11 提交的版本。查看 最新版本

// ==UserScript==
// @name         聚合搜索引擎切换导航[手机版][移动端]
// @namespace    http://tampermonkey.net/
// @version      1.3.14
// @description  在搜索顶部显示一个聚合搜索引擎切换导航,模拟M浏览器的综合搜索引擎。专注手机网页搜索引擎切换,纯粹的搜索。SearchJump、搜索跳转、聚合搜索。
// @author       PunkJet


// @include      *

// @grant        unsafeWindow
// @grant        GM_getValue
// @grant        GM_setValue
// @grant        GM_addStyle
// @run-at       document-start



// @license     MIT
// ==/UserScript==

const searchUrlMap = [
    {
        name: "必应",
        searchUrl: "https://www.bing.com/search?q=",
        searchkeyName: ["q"],
        matchUrl:/bing\.com.*?search\?q=?/g,
        mark:"Bing",
    },
     {
        name: "百度",
        searchUrl: "https://baidu.com/s?wd=",
        searchkeyName: ["wd", "word"],
        matchUrl:/baidu\.com.*?w(or)?d=?/g,
        mark:"Baidu",
    },
     {
        name: "谷歌",
        searchUrl: "https://www.google.com/search?q=",
        searchkeyName: ["q"],
        matchUrl:/google\.com.*?search.*?q=/g,
        mark:"Google",
    },
    {
        name: "知乎",
        searchUrl: "https://www.zhihu.com/search?q=",
        searchkeyName: ["q"],
        matchUrl:/zhihu\.com\/search.*?q=/g,
        mark:"Zhihu",
    },
    {
        name: "F搜",
        searchUrl: "https://fsoufsou.com/search?q=",
        searchkeyName: ["q"],
        matchUrl:/fsoufsou\.com\/.*?q=/g,
        mark:"Fsou",
    },
    {
        name: "360",
        searchUrl: "https://www.so.com/s?q=",
        searchkeyName: ["q"],
        matchUrl:/\.so\.com.*?q=/g,
        mark:"360",
    },
    {
        name: "无追",
        searchUrl: "https://www.wuzhuiso.com/s?q=",
        searchkeyName: ["q"],
        matchUrl:/wuzhuiso\.com.*?q=/g,
        mark:"Wuzhui",
    },
    {
        name: "夸克",
        searchUrl: "https://quark.sm.cn/s?q=",
        searchkeyName: ["q"],
        matchUrl:/sm\.cn.*?q=/g,
        mark:"Quark",
    },
    {
        name: "搜狗",
        searchUrl: "https://m.sogou.com/web/searchList.jsp?keyword=",
        searchkeyName: ["keyword"],
        matchUrl:/sogou\.com.*?keyword=/g,
        mark:"Sougou",
    },
    {
        name: "头条",
        searchUrl: "https://so.toutiao.com/search/?keyword=",
        searchkeyName: ["keyword"],
        matchUrl:/toutiao\.com.*?keyword=/g,
        mark:"Toutiao",
    },
    {
      name: "Yandex",
      searchUrl: "https://yandex.com/search/touch/?text=",
      searchkeyName: ["text"],
      matchUrl:/((ya(ndex)?\.ru)|(yandex\.com)).*?text=/g,
      mark:"Yandex",
    },

    {
        name: "DuckDuckGo",
        searchUrl: "https://duckduckgo.com/?q=",
        searchkeyName: ["q"],
        matchUrl:/duckduckgo\.com.*?q=/g,
        mark:"DuckDuckGo",
      },
  {
      name: "Ecosia",
      searchUrl: "https://www.ecosia.org/search?q=",
      searchkeyName: ["q"],
      matchUrl:/ecosia\.org.*?q=/g,
      mark:"Ecosia",
    }
   
    ];

    const punkDeafultMark = "Bing-Baidu-Google-Toutiao-Fsou-Quark-Sougou-360";
    const punkAllSearchMark = "Bing-Baidu-Google-Zhihu-Fsou-360-Wuzhui-Quark-Sougou-Toutiao-Yandex-Ecosia-DuckDuckGo";

    function getKeywords() {
        let keywords = "";
        for (let urlItem of searchUrlMap) {
            if (window.location.href.match(urlItem.matchUrl) != null) {
                for (let keyItem of urlItem.searchkeyName) {
                    if ( window.location.href.indexOf(keyItem) >= 0 )
                    {
                        let url = new URL(window.location.href);
                        keywords = url.searchParams.get(keyItem);
                        return keywords;
                    }
                }
            }
        }
        return keywords;
    }

    function addOpenSearchBox(){
      const oDivtemp = document.createElement("div");
      oDivtemp.id = "punk-search-open-box";
      oDivtemp.style.display = "none";
      document.getElementById("punkjet-search-box").after(oDivtemp);

    }

    const punkSocialMap = [
        {
            tabName:"日常",
            tabList:[
               {
                    name: "知乎",
                    searchUrl: "https://www.zhihu.com/search?q=",
               },
                {
                    name: "豆瓣",
                    searchUrl: "https://m.douban.com/search/?query=",
                },
               {
                    name: "微博",
                    searchUrl: "https://m.weibo.cn/search?containerid=100103&q=",
                },
                {
                    name: "哔哩哔哩",
                    searchUrl: "https://m.bilibili.com/search?keyword=",
                },
                {
                    name: "维基百科",
                    searchUrl: "https://zh.m.wikipedia.org/wiki/",
                },
                {
                    name: "searXNG",
                    searchUrl: "https://etsi.me/search?q=",
                },
                {
                    name: "安娜的档案",
                    searchUrl: "https://annas-archive.org/search?q=",
                },
                {
                    name: "Unsplash",
                    searchUrl: "https://unsplash.com/s/photos/",
                },
                {
                    name: "火山翻译",
                    searchUrl: "https://translate.volcengine.com/mobile?text=",
                },
                {
                    name: "博客园",
                    searchUrl: "https://zzk.cnblogs.com/s?w=",
                },

            ],
        },

        {
            tabName:"娱乐",
            tabList:[
               {
                    name: "知乎",
                    searchUrl: "https://www.zhihu.com/search?q=",
               },
               {
                    name: "豆瓣",
                    searchUrl: "https://m.douban.com/search/?query=",
               },
               {
                    name: "微博",
                    searchUrl: "https://m.weibo.cn/search?containerid=100103&q=",
                },
                {
                    name: "哔哩哔哩",
                    searchUrl: "https://m.bilibili.com/search?keyword=",
                },
                {
                    name: "小红书",
                    searchUrl: "https://m.sogou.com/web/xiaohongshu?keyword=",
                },
                {
                    name: "微信文章",
                    searchUrl: "https://weixin.sogou.com/weixinwap?type=2&query=",
                },
                {
                    name: "推特",
                    searchUrl: "https://mobile.twitter.com/search/",
                },
                {
                    name: "豆瓣阅读",
                    searchUrl: "https://read.douban.com/search?q=",
                },
                {
                    name: "安娜的档案",
                    searchUrl: "https://annas-archive.org/search?q=",
                },
                {
                    name: "即刻TV",
                    searchUrl: "https://www.jiketv.com/index.php/search/wd/",
                },
                {
                    name: "人人影视",
                    searchUrl: "https://www.rrets.cc/so/wd/",
                },
                {
                    name: "豌豆Pro",
                    searchUrl: "https://wandou.pro/search/",
                },
                {
                    name: "茶杯狐",
                    searchUrl: "https://www.cupfox.app/s/",
                }

            ],
        },
        {
            tabName:"开发",
            tabList:[
            {
                    name: "开发者搜索",
                    searchUrl: "https://kaifa.baidu.com/searchPage?wd=",
                },
                {
                    name: "GitHub",
                    searchUrl: "https://github.com/search?q=",
                },
                {
                    name: "Gitee",
                    searchUrl: "https://search.gitee.com/?q=",
                },

                {
                    name: "Stackoverflow",
                    searchUrl: "https://stackoverflow.com/search?q=",
                },
                {
                    name: "GreasyFork",
                    searchUrl: "https://gf.qytechs.cn/scripts?q=",
                },
               {
                    name: "MDN",
                    searchUrl: "https://developer.mozilla.org/search?q=",
                },
                {
                    name: "菜鸟教程",
                    searchUrl: "https://www.runoob.com/?s=",
                },
                {
                    name: "掘金",
                    searchUrl: "https://juejin.cn/search?query=",
                },
               {
                    name: "博客园",
                    searchUrl: "https://zzk.cnblogs.com/s?w=",
                },


            ],
        },
        {
            tabName:"网盘",
            tabList:[
                 {
                    name: "狸猫网盘",
                    searchUrl: "https://alipansou.com/search?k=",
                },
                {
                    name: "大圣网盘",
                    searchUrl: "https://www.dashengpan.com/#/main/search?keyword=",
                },
                {
                    name: "大力网盘",
                    searchUrl: "https://www.dalipan.com/#/main/search?keyword=",
                },
                {
                    name: "罗马网盘",
                    searchUrl: "https://www.luomapan.com/#/main/search?keyword=",
                },


            ],
        },
          {
            tabName:"翻译",
            tabList:[
                 {
                    name: "有道词典",
                    searchUrl: "https://youdao.com/m/result?word=",
                },
                {
                    name: "必应翻译",
                    searchUrl: "https://cn.bing.com/dict/search?q=",
                },
                {
                    name: "百度翻译",
                    searchUrl: "https://fanyi.baidu.com/#zh/en/",
                },
                {
                    name: "谷歌翻译",
                    searchUrl: "https://translate.google.com/?q=",
                },
               {
                    name: "火山翻译",
                    searchUrl: "https://translate.volcengine.com/mobile?text=",
                },

            ],
        },
          {
            tabName:"图片",
            tabList:[
     {
                    name: "谷歌搜图",
                    searchUrl: "https://www.google.com.hk/search?tbm=isch&q=",
                },
                {
                    name: "必应搜图",
                    searchUrl: "https://www.bing.com/images/search?q=秋",
                },
                {
                    name: "Flickr",
                    searchUrl: "http://www.flickr.com/search/?q=",
                },
                {
                    name: "Pinterest",
                    searchUrl: "https://www.pinterest.com/search/pins/?q=",
                },
                {
                    name: "Pixabay",
                    searchUrl: "https://pixabay.com/zh/images/search/",
                },

                {
                    name: "花瓣",
                    searchUrl: "https://huaban.com/search/?q=",
                },
                {
                    name: "Unsplash",
                    searchUrl: "https://unsplash.com/s/photos/",
                },
            ],
        },
    ];



    function runTabfunc(){
        var i = 0;
        var tab_list = document.querySelector('#punk-tablist');
        var lis = tab_list.querySelectorAll('li');
        var items = document.querySelectorAll('.punk-item');

        for (i = 0; i < lis.length; i++) {
            lis[i].setAttribute('index', i);
            lis[i].onclick = function () {

                for (var i = 0; i < lis.length; i++) {
                    lis[i].className = '';
                }

                this.className = 'punk-current';
                var index = this.getAttribute('index');
                for (i = 0; i < items.length; i++) {
                    items[i].style.display = 'none';
                }
                items[index].style.display = 'block';
            }
        }
    }

    function addSingleTab(node, tabList){
      var ulList = document.createElement('ul');
      node.appendChild(ulList);
      let fragment = document.createDocumentFragment();//创建一个文档碎片,减少DOM渲染次数
      for (let index = 0; index < tabList.length; index++) {
        let liItem = document.createElement('li');
        let a = document.createElement("a");
        a.innerText = tabList[index].name;
        a.href = tabList[index].searchUrl + getKeywords();
        liItem.appendChild(a);
        fragment.appendChild(liItem);
      }
      ulList.appendChild(fragment);
      return node;
    }

    function addJumpSearchBox(){
      const searchJumpBox = document.createElement("div");
      searchJumpBox.id = "punk-search-jump-box";
      searchJumpBox.style.display = "none";
      document.getElementById("punkjet-search-box").appendChild(searchJumpBox);

      const searchAllBox = document.createElement("div");
      searchAllBox.id = "punk-search-all-app";
      searchJumpBox.appendChild(searchAllBox);

      let jumpAllSearchTitle = document.createElement("h1");
      jumpAllSearchTitle.innerText = "✰全部搜索引擎";
      searchAllBox.appendChild(jumpAllSearchTitle);
      addSingleTab(searchAllBox, searchUrlMap);

    const punkTabList = document.createElement("div");
    punkTabList.id = "punk-tablist";

    let jumpSocialTitle = document.createElement("h1");
    jumpSocialTitle.innerText = "@社交网络";
    punkTabList.appendChild(jumpSocialTitle);
    var ulListq = document.createElement('ul');
    punkTabList.appendChild(ulListq);
    let fragmentq = document.createDocumentFragment();//创建一个文档碎片,减少DOM渲染次数
    for (let index = 0; index < punkSocialMap.length; index++) {
        let liItemq = document.createElement('li');
        if (index == 0)
        {
            liItemq.className = "punk-current";
        }
        liItemq.innerText = punkSocialMap[index].tabName;
        fragmentq.appendChild(liItemq);
    }
    ulListq.appendChild(fragmentq);
    searchJumpBox.appendChild(punkTabList);


    const punkTabListcontent = document.createElement("div");
    punkTabListcontent.className = "tab-content";
    let fragmentr = document.createDocumentFragment();//创建一个文档碎片,减少DOM渲染次数
    for (let index = 0; index < punkSocialMap.length; index++) {
        let liItemr = document.createElement('div');
        liItemr.className = "punk-item";
        if (index == 0){
            liItemr.style.display = `block`;
        }else {
            liItemr.style.display = `none`;
        }

        liItemr = addSingleTab(liItemr, punkSocialMap[index].tabList);
        fragmentr.appendChild(liItemr);
    }
    punkTabListcontent.appendChild(fragmentr);
    searchJumpBox.appendChild(punkTabListcontent);


      let jumpSortTitle = document.createElement("h1");
      jumpSortTitle.innerText = "☯导航栏排序";
      searchJumpBox.appendChild(jumpSortTitle);

      let jumpSortDesc = document.createElement("div");
      jumpSortDesc.className = "jump-sort-discription";
      searchJumpBox.appendChild(jumpSortDesc);

      let a2 = document.createElement("a");
      a2.innerText = "说明:除搜索引擎,其他站只跳转无导航\n支持的格式:" + punkAllSearchMark;
      jumpSortDesc.appendChild(a2);

      let punkJumpButton = document.createElement("button");
      punkJumpButton.innerText = "点击输入排序";
      punkJumpButton.className = "punk-jump-sort-btn";
      searchJumpBox.appendChild(punkJumpButton);

      punkJumpButton.onclick = function () {
        let sss = prompt("请输入需要显示的引擎!\n格式举例:Quark-Zhihu-Toutiao-360\n则导航为:夸克、知乎、头条、360");
        if (sss) {
          GM_setValue("punk_setup_search", sss);
          setTimeout(function(){location.reload();}, 200);
        }
        //alert("用户设置" + GM_getValue("punk_setup_search"));
      }

      let punkJumpClose = document.createElement("button");
      punkJumpClose.innerText = "收起";
      punkJumpClose.className = "punk-jump-sort-btn";
      searchJumpBox.appendChild(punkJumpClose);

      punkJumpClose.onclick = function () {
      document.getElementById("punk-search-jump-box").style.display = `none`;
     }
    }


    function punkSearchClickFunction(){

      let btnPunkOpen = document.querySelector("#punk-search-open-box");
      btnPunkOpen.onclick = function () {
        var x = document.getElementById("punkjet-search-box");
        if (x.style.display == "none") {
          x.style.display = "block";
          document.getElementsByTagName('body')[0].style = "margin-top: 35px !important;";
        } else {
          x.style.display = "none";
          document.getElementsByTagName('body')[0].style = "margin-top: 0px !important;";
        }
      }


      let btnSet = document.querySelector("#search-setting-box");
      btnSet.onclick = function () {
        var punkjump = document.getElementById("punk-search-jump-box");
        if (punkjump.style.display === "none") {
          punkjump.style.display = "block";
        } else {
          punkjump.style.display = `none`;
        }
      }

      let btnClose = document.querySelector("#search-close-box");
      let punkNavi = document.querySelector("#punkjet-search-box");
      btnClose.onclick = function () {
        var x = document.getElementById("punk-search-open-box");
        if (x.style.display === "none") {
          x.style.display = "block";
        }
        punkNavi.style.display = `none`;
        document.getElementsByTagName('body')[0].style = "margin-top: 0px !important;";
      }

    }


    function addSearchBox() {
        const punkJetBox = document.createElement("div");
        punkJetBox.id = "punkjet-search-box";

        const searchBox = document.createElement("div");
        searchBox.id = "punk-search-navi-box";
        punkJetBox.appendChild(searchBox);

        const needHidebox = document.createElement("div");
        needHidebox.id = "punk-need-hide-box";
        searchBox.appendChild(needHidebox);

        const appBoxDiv = document.createElement("div");
        appBoxDiv.id = "punk-search-app-box";
        needHidebox.appendChild(appBoxDiv);

        var ulList = document.createElement('ul');
        appBoxDiv.appendChild(ulList);

        let fragment = document.createDocumentFragment();//创建一个文档碎片,减少DOM渲染次数

        let showList = GM_getValue("punk_setup_search").split('-');
        for (let showListIndex = 0; showListIndex < showList.length; showListIndex++) {
            for (let index = 0; index < searchUrlMap.length; index++) {
                let item = searchUrlMap[index];
                if (item.mark == showList[showListIndex]) {
                    let liItem = document.createElement('li');
                    let a = document.createElement("a");
                    a.innerText = item.name;

                    //if ( window.location.href.indexOf(item.matchUrl) >= 0 ) {
                    if (window.location.href.match(item.matchUrl) != null) {
                        a.className = "search-engine-highlight";
                    }
                    a.href = item.searchUrl + getKeywords();

                    liItem.appendChild(a);
                    fragment.appendChild(liItem);
                    break;
                }
            }
        }
        ulList.appendChild(fragment);

        const setBoxDiv = document.createElement("div");
        setBoxDiv.id = "search-setting-box";
        setBoxDiv.innerHTML = `<span id="punkBtnSet"><p></p > </span>`;

        needHidebox.appendChild(setBoxDiv);

        const closeBoxDiv = document.createElement("div");
        closeBoxDiv.id = "search-close-box";
        closeBoxDiv.innerHTML = `<span id="punkBtnClose"><p></p ></span>`;
        searchBox.appendChild(closeBoxDiv);

        document.getElementsByTagName('head')[0].after(punkJetBox);



    }


    (function () {
      "use strict";

      const css =
        `
        #punkjet-search-box{
          position: fixed;
          flex-direction: column;
          top: 0px;
          left: 0px;
          width: 100%;
          height:35px;
          background-color: #FFFFFF !important;
          font-size: 15px;
          z-index: 9999999;
          justify-content: flex-end;
        }
        #punk-search-navi-box {
          display: -webkit-flex;
          display:flex;
          width: 100%;
          height:35px;
        }
        #punk-search-jump-box{
          padding: 8px;
          background-color: #FFFFFF !important;
          max-width:480px;
          float:right;
          max-height: calc(80vh);
          overflow: scroll;
          box-shadow:0px 0px 1px 0px #000000;
          -ms-overflow-style: none;  /* IE and Edge */
          scrollbar-width: none;  /* Firefox */
       }
       #punk-search-jump-box::-webkit-scrollbar {
         display: none;
       }
       #punk-search-app-box {
          flex:1;
          width: 0;
        }

        #punk-need-hide-box{
          flex:1;
          width: 0;
          display:flex;
        }
        #search-setting-box {
          flex: 0 0 30px;
          text-align: center;
          margin: auto;
          background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABQRJREFUaEPdWT1uHDcU5httkS7KBRIbSB+7S5eVSDVpEp8gcpHa0gninCDyCbw6gaUiQACR61GjNvYBgqyRA0SqtMUOX/CtOYMZLjlD7k4CKARUjJZ85Pfe9374SOKBD3rg5xejAVBKfSeEeCKEmDql7LtvfL4TQty6/5f41lpfjqG8nQBIKX8QQnyPQxMRDpw8mBmAAObCGHOevNCbuBUApRS0/EtLw9vuX6+DhU611gCUNbIAHB0dPWFmHLymSdZmCZNLIjq9uroCoKSRDEBKCaq8jlGFmT/UlCCiW/zVB3HA95kZNKsp90XohKAWET1LtUYSACnlCyI6i2x4XhTFWY7WIAegrLUnRAQ/2hjW2ufz+Xw2ZIZBAFJKaP04IOh6tVodl2W5GNqk73dnHSjnG38eM8+MMc/71vcCUEqdOGftyEjVTg6ww8PD46IoXvtrhvaKAgDnieiNJ/AOHE7lZw4AzHXR7UII8am39iC2ZxCA4+dbz2HviGiay/VcEI5SCKcNCDh2URQHob2DAJRSbwOhMqoFHHI6ne7v7e2tHbKqqvOyLOvMm4uhtgTO0B6l1vrAF7YBwJmxs3iIh9Pp9NFkMgHdUEoIZj43xoQcPxlMxCc2lBgC8LuXYa+11tHEFaGb0FoPRrghNEopUKkdnVBDPW2v62wSQr1arR7HQmUscjDzK2MMIthOw/kDFNoMnw0dAEopRABUlevRRwUp5RkRvfBPiDVVVZ3s4gNtmVLKmZfsLrXWyObr0QEgpfy7HXmI6Knv+c5ZkdwaIa0Nf9Zav9xJ7d5i3wqISMaYzzYA+HEftY0x5pF/mIBGMGXJzL8RUXIR1pbLzIuqqi5jVpNSLoioXTs1ztxYwKdEjD5KKR5Tw4l09WnUWLoB4Hs8Mz8zxsAnOkNKyUQflzF/xFJ/7wIsZnHIDFQFTWSMAhBCBBOXUupXIcS3NYAxDj8UMAK5aROAlPJPImo43xc+nUbWSWuMYa1dWGsvYj4QCKdNPmhboMPtMRLRGOBqGb7v1ef7/wDwQ1UfhcbUbIqsQC54b4xZUzjbiVtR4auUzfvmWGs/ISLIWd7f35/e3NzgXr0xkpw4NYz65cYuIBCGW1HsL6315yF5SWH0v0pk3qGb8zKzNcbsRQAMJ7JAKbEwxjz2Be5qgRgAa+0f8/n8ywiATohv5yi/GsUtqrnKhYq5lg8k5wFwvSgK1PVfhw5orb1aLpc/hnwgkAPutNZNG3PrcjqV+3BAZkb1ulEYonxAy6avSZBVTocuKDErDAFA2T2ZTH4SQgQvNrj0VFX1su/ekH2hcfR450JbfcbgZXoIQKTsRgE4qPVW9u00F5i5if/1nFEu9ZHY3fEnzEnRei1r60s9BAQu0/h3b1ulL1rlaN3tjyaC31YJNheijS1mTm4uhSzgfAD8v12tVrPUO3JuUy2rtZjb+h7yk4DVELHeBFr4ea3FlhM93OZuDSIWTfCYkfuaErJI36tPSocvqXsWa7O7yDIriuJVbtPXcR0PJ8EW5FA7MxpGY7ztaX2vl6A14qxygeclIcRd+4kJJQqemJi5fmLayMxu76wWfpIFalB9rym5DhuZf01EJznWzALQcm5EC7QWd77UOOu9x8G3eTjZCoCXLdeUCLyqDBkFVCnRjUh5zIsJ2wlAW2ir1bJuxYPvtYVQwzi/wE9IkKivsh+1QyBGAzCk7n/r9wcP4B+74kxeh9FZygAAAABJRU5ErkJggg==) no-repeat center;
          background-size:contain;
          width:100%;
          height:18px;
        }
        #search-close-box {
          flex: 0 0 29px;
          text-align: center;
          margin: auto;
          background:url(data:image/png;base64,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) no-repeat center;
          background-size:contain;
          width:100%;
          height:18px;
        }

        #punk-search-app-box ul {
          margin: 0;
          padding: 0;
          overflow: hidden;
          overflow-x: auto;
          list-style: none;
          white-space:nowrap;
        }

        #punk-search-app-box ul::-webkit-scrollbar {
          display: none !important;
        }

        #punk-search-app-box li {
          margin-left: 0px;
          display: inline-block;
          border-radius: 2px;
          vertical-align: middle;
        }

        #punk-search-app-box ul li a {
          display: block;
          color: #666666 !important;
          padding: 8px;
          text-decoration: none;
          font-weight:bold;
          font-family:Helvetica Neue,Helvetica,Arial,Microsoft Yahei,Hiragino Sans GB,Heiti SC,WenQuanYi Micro Hei,sans-serif;
        }

        .search-engine-highlight  {
          background-color:#ECEFF1;
        }


        #punk-search-open-box {
          position:fixed;
          left:22px;
          bottom:64px;
          height:36px;
          width:36px;
          font-size:15px;
          text-align: center;
          padding: 10px;
          border-radius: 5px;
          z-index:9999998;
          background:url(data:image/png;base64,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) no-repeat center;
          background-size:contain;
        }
        #punk-search-open-box, ::after, ::before {
          box-sizing: initial !important;
        }
        #punk-search-jump-box h1{
          font-size: 15px !important;
          color: #444444 !important;
          font-weight:bold;
          margin:7px 4px;
        }
        #punk-search-jump-box ul {
          margin-left:0px;
          padding: 0;
          overflow: hidden;
          overflow-x: auto;
          list-style: none;
        }
        #punk-search-jump-box li {
          margin: 4px;
          display: inline-block;
          vertical-align: middle;
          border-radius: 4px;
          background-color: hsla(204, 48%, 14%, 0.1) !important;
        }

        #punk-search-jump-box a {
          display: block;
          color: #263238 !important;
          padding: 3px;
          margin:2px;
          font-size: 14px;
          text-decoration: none;
          font-family: Helvetica Neue,Helvetica,Arial,Microsoft Yahei,Hiragino Sans GB,Heiti SC,WenQuanYi Micro Hei,sans-serif;
        }
        .jump-sort-discription {
          margin:5px 4px;
        }
        .punk-jump-sort-btn {
          background-color: #0026A69A;
          border: none;
          color: white;
          padding: 8px 64px;
          text-align: center;
          text-decoration: none;
          display: inline-block;
          font-size: 13px;
          margin: 4px 5px;
          cursor: pointer;
          border-radius: 4px;
          width: 97%;
        }
        body {
          margin-top: 35px !important;
          position: relative !important;
        }

        .his-wrap-new .fix-wrap {
          top:35px !important;
        }



        #punk-tablist {
            height: 65px;
            margin-top:20px;

        }

        #punk-tablist li {
           float: left;
           height: 18px;
          background-color: hsla(0, 100%, 100%, 0) !important;
          color: #666666 !important;
          text-align: center;
         cursor: pointer;
          margin: 4px 8px;

          }
        #punk-tablist ul {

            height: 39px;

        }

        .punk-current {
          text-decoration: underline 3px #0026A69A;
          text-underline-offset:0.4em;
          
        }
        .punk-current li {
         color:#0026A69A !important;
        }


        .tab-content {
            margin-bottom:20px;
        }

      `
      for (let index = 0; index< searchUrlMap.length; index++) {
          if (window.location.href.match(searchUrlMap[index].matchUrl) != null) {
 
            if (getKeywords() != null){        
if (!GM_getValue("punk_setup_search")) {
                GM_setValue("punk_setup_search", punkDeafultMark);
              }
              GM_addStyle(css);
              addSearchBox();
              addJumpSearchBox();
              addOpenSearchBox();
              punkSearchClickFunction();
              runTabfunc();
           }
         }
      }
    })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址