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

在搜索顶部显示一个聚合搜索引擎切换导航,综合搜索引擎。专注手机网页搜索引擎切换,纯粹的搜索。|SearchJumper|搜索跳转|聚合搜索|All Search|Punk Search|。

目前為 2023-04-16 提交的版本,檢視 最新版本

  1. // ==UserScript==
  2. // @name 聚合搜索引擎切换导航[手机版][移动端]
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.4.0
  5. // @description 在搜索顶部显示一个聚合搜索引擎切换导航,综合搜索引擎。专注手机网页搜索引擎切换,纯粹的搜索。|SearchJumper|搜索跳转|聚合搜索|All Search|Punk Search|。
  6. // @author PunkJet
  7.  
  8.  
  9. // @include *
  10.  
  11. // @grant unsafeWindow
  12. // @grant GM_getValue
  13. // @grant GM_setValue
  14. // @grant GM_addStyle
  15. // @run-at document-start
  16.  
  17.  
  18.  
  19. // @license MIT
  20. // ==/UserScript==
  21.  
  22. const punkDeafultMark = "Bing-Baidu-Google-Toutiao-Fsou-Quark-Sougou-360";
  23. const punkAllSearchMark = "Bing-Baidu-Google-Zhihu-Fsou-360-Wuzhui-Quark-Sougou-Toutiao-Yandex-Ecosia-DuckDuckGo";
  24.  
  25. const searchUrlMap = [
  26. {
  27. name: "必应",
  28. searchUrl: "https://www.bing.com/search?q=",
  29. searchkeyName: ["q"],
  30. matchUrl:/bing\.com.*?search\?q=?/g,
  31. mark:"Bing",
  32. },
  33. {
  34. name: "百度",
  35. searchUrl: "https://baidu.com/s?wd=",
  36. searchkeyName: ["wd", "word"],
  37. matchUrl:/baidu\.com.*?w(or)?d=?/g,
  38. mark:"Baidu",
  39. },
  40. {
  41. name: "谷歌",
  42. searchUrl: "https://www.google.com/search?q=",
  43. searchkeyName: ["q"],
  44. matchUrl:/google\.com.*?search.*?q=/g,
  45. mark:"Google",
  46. },
  47. {
  48. name: "知乎",
  49. searchUrl: "https://www.zhihu.com/search?q=",
  50. searchkeyName: ["q"],
  51. matchUrl:/zhihu\.com\/search.*?q=/g,
  52. mark:"Zhihu",
  53. },
  54. {
  55. name: "F搜",
  56. searchUrl: "https://fsoufsou.com/search?q=",
  57. searchkeyName: ["q"],
  58. matchUrl:/fsoufsou\.com\/.*?q=/g,
  59. mark:"Fsou",
  60. },
  61. {
  62. name: "360",
  63. searchUrl: "https://www.so.com/s?q=",
  64. searchkeyName: ["q"],
  65. matchUrl:/\.so\.com.*?q=/g,
  66. mark:"360",
  67. },
  68. {
  69. name: "无追",
  70. searchUrl: "https://www.wuzhuiso.com/s?q=",
  71. searchkeyName: ["q"],
  72. matchUrl:/wuzhuiso\.com.*?q=/g,
  73. mark:"Wuzhui",
  74. },
  75. {
  76. name: "夸克",
  77. searchUrl: "https://quark.sm.cn/s?q=",
  78. searchkeyName: ["q"],
  79. matchUrl:/sm\.cn.*?q=/g,
  80. mark:"Quark",
  81. },
  82. {
  83. name: "搜狗",
  84. searchUrl: "https://m.sogou.com/web/searchList.jsp?keyword=",
  85. searchkeyName: ["keyword"],
  86. matchUrl:/sogou\.com.*?keyword=/g,
  87. mark:"Sougou",
  88. },
  89. {
  90. name: "头条",
  91. searchUrl: "https://so.toutiao.com/search/?keyword=",
  92. searchkeyName: ["keyword"],
  93. matchUrl:/toutiao\.com.*?keyword=/g,
  94. mark:"Toutiao",
  95. },
  96. {
  97. name: "Yandex",
  98. searchUrl: "https://yandex.com/search/touch/?text=",
  99. searchkeyName: ["text"],
  100. matchUrl:/((ya(ndex)?\.ru)|(yandex\.com)).*?text=/g,
  101. mark:"Yandex",
  102. },
  103.  
  104. {
  105. name: "DuckDuckGo",
  106. searchUrl: "https://duckduckgo.com/?q=",
  107. searchkeyName: ["q"],
  108. matchUrl:/duckduckgo\.com.*?q=/g,
  109. mark:"DuckDuckGo",
  110. },
  111. {
  112. name: "Ecosia",
  113. searchUrl: "https://www.ecosia.org/search?q=",
  114. searchkeyName: ["q"],
  115. matchUrl:/ecosia\.org.*?q=/g,
  116. mark:"Ecosia",
  117. }
  118. ];
  119.  
  120.  
  121. const punkSocialMap = [
  122. {
  123. tabName:"日常",
  124. tabList:[
  125. {name: "知乎", searchUrl: "https://www.zhihu.com/search?q="},
  126. {name: "豆瓣", searchUrl: "https://m.douban.com/search/?query="},
  127. {name: "微博", searchUrl: "https://m.weibo.cn/search?containerid=100103&q="},
  128. {name: "哔哩哔哩", searchUrl: "https://m.bilibili.com/search?keyword="},
  129. {name: "维基百科", searchUrl: "https://zh.m.wikipedia.org/wiki/"},
  130. {name: "searXNG", searchUrl: "https://etsi.me/search?q="},
  131. {name: "安娜的档案", searchUrl: "https://annas-archive.org/search?q="},
  132. {name: "Unsplash", searchUrl: "https://unsplash.com/s/photos/"},
  133. {name: "火山翻译", searchUrl: "https://translate.volcengine.com/mobile?text="},
  134. {name: "博客园", searchUrl: "https://zzk.cnblogs.com/s?w="},
  135. ],
  136. },
  137. {
  138. tabName:"娱乐",
  139. tabList:[
  140. {name: "知乎", searchUrl: "https://www.zhihu.com/search?q="},
  141. {name: "豆瓣", searchUrl: "https://m.douban.com/search/?query=",},
  142. {name: "微博", searchUrl: "https://m.weibo.cn/search?containerid=100103&q="},
  143. {name: "哔哩哔哩", searchUrl: "https://m.bilibili.com/search?keyword="},
  144. {name: "小红书", searchUrl: "https://m.sogou.com/web/xiaohongshu?keyword="},
  145. {name: "微信文章", searchUrl: "https://weixin.sogou.com/weixinwap?type=2&query="},
  146. {name: "推特", searchUrl: "https://mobile.twitter.com/search/"},
  147. {name: "豆瓣阅读", searchUrl: "https://read.douban.com/search?q="},
  148. {name: "安娜的档案", searchUrl: "https://annas-archive.org/search?q="},
  149. {name: "即刻TV", searchUrl: "https://www.jiketv.com/index.php/search/wd/"},
  150. {name: "人人影视", searchUrl: "https://www.rrets.cc/so/wd/"},
  151. {name: "豌豆Pro", searchUrl: "https://wandou.pro/search/"},
  152. {name: "茶杯狐", searchUrl: "https://www.cupfox.app/s/"},
  153. ],
  154. },
  155. {
  156. tabName:"开发",
  157. tabList:[
  158. {name: "开发者搜索", searchUrl: "https://kaifa.baidu.com/searchPage?wd="},
  159. {name: "GitHub", searchUrl: "https://github.com/search?q="},
  160. {name: "Gitee", searchUrl: "https://search.gitee.com/?q="},
  161. {name: "Stackoverflow", searchUrl: "https://stackoverflow.com/search?q="},
  162. {name: "GreasyFork", searchUrl: "https://gf.qytechs.cn/scripts?q="},
  163. {name: "MDN", searchUrl: "https://developer.mozilla.org/search?q="},
  164. {name: "菜鸟教程", searchUrl: "https://www.runoob.com/?s="},
  165. {name: "掘金", searchUrl: "https://juejin.cn/search?query="},
  166. {name: "博客园", searchUrl: "https://zzk.cnblogs.com/s?w="},
  167. ],
  168. },
  169. {
  170. tabName:"网盘",
  171. tabList:[
  172. {name: "狸猫网盘", searchUrl: "https://alipansou.com/search?k="},
  173. {name: "大圣网盘", searchUrl: "https://www.dashengpan.com/#/main/search?keyword="},
  174. {name: "大力网盘", searchUrl: "https://www.dalipan.com/#/main/search?keyword="},
  175. {name: "罗马网盘", searchUrl: "https://www.luomapan.com/#/main/search?keyword="},
  176. ],
  177. },
  178. {
  179. tabName:"翻译",
  180. tabList:[
  181. {name: "有道词典", searchUrl: "https://youdao.com/m/result?word="},
  182. {name: "必应翻译", searchUrl: "https://cn.bing.com/dict/search?q="},
  183. {name: "百度翻译", searchUrl: "https://fanyi.baidu.com/#zh/en/"},
  184. {name: "谷歌翻译", searchUrl: "https://translate.google.com/?q="},
  185. {name: "火山翻译", searchUrl: "https://translate.volcengine.com/mobile?text="},
  186. {name: "DeepL翻译", searchUrl: "https://www.deepl.com/translator-mobile#zh/en/"},
  187. ],
  188. },
  189. {
  190. tabName:"图片",
  191. tabList:[
  192. {name: "谷歌搜图", searchUrl: "https://www.google.com.hk/search?tbm=isch&q="},
  193. {name: "必应搜图", searchUrl: "https://www.bing.com/images/search?q=秋"},
  194. {name: "Flickr", searchUrl: "http://www.flickr.com/search/?q="},
  195. {name: "Pinterest", searchUrl: "https://www.pinterest.com/search/pins/?q="},
  196. {name: "Pixabay", searchUrl: "https://pixabay.com/zh/images/search/"},
  197. {name: "花瓣", searchUrl: "https://huaban.com/search/?q="},
  198. {name: "Unsplash", searchUrl: "https://unsplash.com/s/photos/"},
  199. ],
  200. },
  201. ];
  202.  
  203.  
  204. function getKeywords() {
  205. let keywords = "";
  206. for (let urlItem of searchUrlMap) {
  207. if (window.location.href.match(urlItem.matchUrl) != null) {
  208. for (let keyItem of urlItem.searchkeyName) {
  209. if ( window.location.href.indexOf(keyItem) >= 0 )
  210. {
  211. let url = new URL(window.location.href);
  212. keywords = url.searchParams.get(keyItem);
  213. return keywords;
  214. }
  215. }
  216. }
  217. }
  218. return keywords;
  219. }
  220.  
  221.  
  222. function addOpenSearchBox() {
  223. const oDivtemp = document.createElement("div");
  224. oDivtemp.id = "punk-search-open-box";
  225. oDivtemp.style.display = "none";
  226. document.getElementById("punkjet-search-box").after(oDivtemp);
  227. }
  228.  
  229.  
  230. function runTabfunc() {
  231. var tab_list = document.querySelector('#punk-tablist');
  232. var lis = tab_list.querySelectorAll('li');
  233. var items = document.querySelectorAll('.punk-item');
  234.  
  235. for (var i = 0; i < lis.length; i++) {
  236. lis[i].setAttribute('index', i);
  237. lis[i].onclick = function () {
  238. for (var i = 0; i < lis.length; i++) {
  239. lis[i].className = '';
  240. }
  241. this.className = 'punk-current';
  242. var index = this.getAttribute('index');
  243. for (i = 0; i < items.length; i++) {
  244. items[i].style.display = 'none';
  245. }
  246. items[index].style.display = 'block';
  247. }
  248. }
  249. }
  250.  
  251.  
  252. function addSingleTab(node, tabList) {
  253. var ulList = document.createElement('ul');
  254. node.appendChild(ulList);
  255. let fragment = document.createDocumentFragment();//创建一个文档碎片,减少DOM渲染次数
  256. for (let index = 0; index < tabList.length; index++) {
  257. let liItem = document.createElement('li');
  258. let a = document.createElement("a");
  259. a.innerText = tabList[index].name;
  260. a.href = tabList[index].searchUrl + getKeywords();
  261. liItem.appendChild(a);
  262. fragment.appendChild(liItem);
  263. }
  264. ulList.appendChild(fragment);
  265. return node;
  266. }
  267.  
  268.  
  269. function addJumpSearchBox(){
  270. const searchJumpBox = document.createElement("div");
  271. searchJumpBox.id = "punk-search-jump-box";
  272. searchJumpBox.style.display = "none";
  273. document.getElementById("punkjet-search-box").appendChild(searchJumpBox);
  274.  
  275. const searchAllBox = document.createElement("div");
  276. searchAllBox.id = "punk-search-all-app";
  277. searchJumpBox.appendChild(searchAllBox);
  278.  
  279. let jumpAllSearchTitle = document.createElement("h1");
  280. jumpAllSearchTitle.innerText = "✰全部搜索引擎";
  281. searchAllBox.appendChild(jumpAllSearchTitle);
  282. addSingleTab(searchAllBox, searchUrlMap);
  283.  
  284. const punkTabList = document.createElement("div");
  285. punkTabList.id = "punk-tablist";
  286.  
  287. let jumpSocialTitle = document.createElement("h1");
  288. jumpSocialTitle.innerText = "@社交网络";
  289. punkTabList.appendChild(jumpSocialTitle);
  290. var ulListq = document.createElement('ul');
  291. punkTabList.appendChild(ulListq);
  292. let fragmentq = document.createDocumentFragment();//创建一个文档碎片,减少DOM渲染次数
  293. for (let index = 0; index < punkSocialMap.length; index++) {
  294. let liItemq = document.createElement('li');
  295. if (index == 0) {
  296. liItemq.className = "punk-current";
  297. }
  298. liItemq.innerText = punkSocialMap[index].tabName;
  299. fragmentq.appendChild(liItemq);
  300. }
  301. ulListq.appendChild(fragmentq);
  302. searchJumpBox.appendChild(punkTabList);
  303.  
  304. const punkTabListcontent = document.createElement("div");
  305. punkTabListcontent.className = "tab-content";
  306. let fragmentr = document.createDocumentFragment();//创建一个文档碎片,减少DOM渲染次数
  307. for (let index = 0; index < punkSocialMap.length; index++) {
  308. let liItemr = document.createElement('div');
  309. liItemr.className = "punk-item";
  310. if (index == 0) {
  311. liItemr.style.display = `block`;
  312. } else {
  313. liItemr.style.display = `none`;
  314. }
  315. liItemr = addSingleTab(liItemr, punkSocialMap[index].tabList);
  316. fragmentr.appendChild(liItemr);
  317. }
  318. punkTabListcontent.appendChild(fragmentr);
  319. searchJumpBox.appendChild(punkTabListcontent);
  320.  
  321. let jumpSortTitle = document.createElement("h1");
  322. jumpSortTitle.innerText = "☯导航栏排序";
  323. searchJumpBox.appendChild(jumpSortTitle);
  324.  
  325. let jumpSortDesc = document.createElement("div");
  326. jumpSortDesc.className = "jump-sort-discription";
  327. searchJumpBox.appendChild(jumpSortDesc);
  328.  
  329. let a2 = document.createElement("a");
  330. a2.innerText = "说明:除搜索引擎,其他站只跳转无导航\n支持的格式:" + punkAllSearchMark;
  331. jumpSortDesc.appendChild(a2);
  332.  
  333. let punkJumpButton = document.createElement("button");
  334. punkJumpButton.innerText = "点击输入排序";
  335. punkJumpButton.className = "punk-jump-sort-btn";
  336. searchJumpBox.appendChild(punkJumpButton);
  337.  
  338. punkJumpButton.onclick = function () {
  339. let sss = prompt("请输入需要显示的引擎!\n格式举例:Quark-Zhihu-Toutiao-360\n则导航为:夸克、知乎、头条、360");
  340. if (sss) {
  341. GM_setValue("punk_setup_search", sss);
  342. setTimeout(function(){location.reload();}, 200);
  343. }
  344. //alert("用户设置" + GM_getValue("punk_setup_search"));
  345. }
  346.  
  347. let punkJumpClose = document.createElement("button");
  348. punkJumpClose.innerText = "收起";
  349. punkJumpClose.className = "punk-jump-sort-btn";
  350. searchJumpBox.appendChild(punkJumpClose);
  351.  
  352. punkJumpClose.onclick = function () {
  353. document.getElementById("punk-search-jump-box").style.display = `none`;
  354. }
  355. }
  356.  
  357.  
  358. function punkSearchClickFunction(){
  359. let btnPunkOpen = document.querySelector("#punk-search-open-box");
  360. btnPunkOpen.onclick = function () {
  361. var x = document.getElementById("punkjet-search-box");
  362. if (x.style.display == "none") {
  363. x.style.display = "block";
  364. document.getElementsByTagName('body')[0].style = "margin-top: 35px !important;";
  365. btnPunkOpen.style.display = "none";
  366. } else {
  367. x.style.display = "none";
  368. document.getElementsByTagName('body')[0].style = "margin-top: 0px !important;";
  369. }
  370. }
  371.  
  372. let btnSet = document.querySelector("#search-setting-box");
  373. btnSet.onclick = function () {
  374. var punkjump = document.getElementById("punk-search-jump-box");
  375. if (punkjump.style.display === "none") {
  376. punkjump.style.display = "block";
  377. } else {
  378. punkjump.style.display = `none`;
  379. }
  380. }
  381.  
  382. let btnClose = document.querySelector("#search-close-box");
  383. let punkNavi = document.querySelector("#punkjet-search-box");
  384. btnClose.onclick = function () {
  385. var x = document.getElementById("punk-search-open-box");
  386. if (x.style.display === "none") {
  387. x.style.display = "block";
  388. }
  389. punkNavi.style.display = `none`;
  390. document.getElementsByTagName('body')[0].style = "margin-top: 0px !important;";
  391. }
  392.  
  393. }
  394.  
  395.  
  396. function addSearchBox() {
  397. const punkJetBox = document.createElement("div");
  398. punkJetBox.id = "punkjet-search-box";
  399. punkJetBox.style.display = "block";
  400.  
  401. const searchBox = document.createElement("div");
  402. searchBox.id = "punk-search-navi-box";
  403. punkJetBox.appendChild(searchBox);
  404.  
  405. const appBoxDiv = document.createElement("div");
  406. appBoxDiv.id = "punk-search-app-box";
  407. searchBox.appendChild(appBoxDiv);
  408.  
  409. var ulList = document.createElement('ul');
  410. appBoxDiv.appendChild(ulList);
  411.  
  412. let fragment = document.createDocumentFragment();//创建一个文档碎片,减少DOM渲染次数
  413. let showList = GM_getValue("punk_setup_search").split('-');
  414. for (let showListIndex = 0; showListIndex < showList.length; showListIndex++) {
  415. for (let index = 0; index < searchUrlMap.length; index++) {
  416. let item = searchUrlMap[index];
  417. if (item.mark == showList[showListIndex]) {
  418. let liItem = document.createElement('li');
  419. let a = document.createElement("a");
  420. a.innerText = item.name;
  421. if (window.location.href.match(item.matchUrl) != null) {
  422. a.className = "search-engine-highlight";
  423. }
  424. a.href = item.searchUrl + getKeywords();
  425. liItem.appendChild(a);
  426. fragment.appendChild(liItem);
  427. break;
  428. }
  429. }
  430. }
  431. ulList.appendChild(fragment);
  432.  
  433. const setBoxDiv = document.createElement("div");
  434. setBoxDiv.id = "search-setting-box";
  435. setBoxDiv.innerHTML = `<span id="punkBtnSet"><p></p > </span>`;
  436. searchBox.appendChild(setBoxDiv);
  437.  
  438. const closeBoxDiv = document.createElement("div");
  439. closeBoxDiv.id = "search-close-box";
  440. closeBoxDiv.innerHTML = `<span id="punkBtnClose"><p></p ></span>`;
  441. searchBox.appendChild(closeBoxDiv);
  442.  
  443. document.getElementsByTagName('head')[0].after(punkJetBox);
  444. }
  445.  
  446.  
  447. function funcTouchStart(state) {
  448. var myNodelist = document.querySelectorAll("*");
  449. //console.log("length is "+ myNodelist.length);
  450. for (var i = 0; i < myNodelist.length; i++) {
  451. let style = window.getComputedStyle(myNodelist[i], null);
  452. if (style.getPropertyValue("position") === "fixed") {
  453. if (style.getPropertyValue("z-index") != "9999999") {
  454. //console.log(myNodelist[i]);
  455. if (style.getPropertyValue("top") === "0px") {
  456. if (document.getElementById("punkjet-search-box").style.display == "block") {
  457. myNodelist[i].style.top = "35px";
  458. }
  459. }
  460. }
  461. } else if (style.getPropertyValue("top") === "35px") {
  462. myNodelist[i].style.top = "0px";
  463. }
  464. }
  465. }
  466.  
  467.  
  468. function funcPopState() {
  469. var myNodelist = document.querySelectorAll("*");
  470. //console.log("length is "+ myNodelist.length);
  471. for (var i = 0; i < myNodelist.length; i++) {
  472. let style = window.getComputedStyle(myNodelist[i], null);
  473. if (style.getPropertyValue("position") != "fixed"){
  474. if (style.getPropertyValue("top") === "35px") {
  475. myNodelist[i].style.top = "0px";
  476. }
  477. }
  478. }
  479. }
  480.  
  481. (function () {
  482. "use strict";
  483.  
  484. const css = `#punkjet-search-box{position:fixed;flex-direction:column;top:0;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;scrollbar-width:none}#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/svg+xml;utf8,%3Csvg width='48' height='48' xmlns='http://www.w3.org/2000/svg' fill='none'%3E%3Cg%3E%3Ctitle%3ELayer 1%3C/title%3E%3Cpath id='svg_1' stroke-linejoin='round' stroke-width='4' stroke='%23444444' fill='none' d='m24,44c11.0457,0 20,-8.9543 20,-20c0,-11.0457 -8.9543,-20 -20,-20c-11.0457,0 -20,8.9543 -20,20c0,11.0457 8.9543,20 20,20z'/%3E%3Cline stroke='%23444444' stroke-linecap='round' stroke-linejoin='round' id='svg_10' y2='28.5' x2='33' y1='28.5' x1='14' stroke-width='4' fill='none'/%3E%3Cline stroke='%23444444' stroke-linecap='round' stroke-linejoin='round' id='svg_11' y2='20.5' x2='33' y1='20.5' x1='14' stroke-width='4' fill='none'/%3E%3Cline stroke-linecap='round' stroke-linejoin='round' id='svg_12' y2='14.5' x2='20' y1='19.5' x1='14' stroke-width='4' stroke='%23444444' fill='none'/%3E%3Cline stroke='%23444444' stroke-linecap='round' stroke-linejoin='round' id='svg_13' y2='34.5' x2='24' y1='28.5' x1='33' stroke-width='4' fill='none'/%3E%3C/g%3E%3C/svg%3E") 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/svg+xml;utf8,%3Csvg width='18' height='18' viewBox='0 0 48 48' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M24 44C35.0457 44 44 35.0457 44 24C44 12.9543 35.0457 4 24 4C12.9543 4 4 12.9543 4 24C4 35.0457 12.9543 44 24 44Z' fill='none' stroke='%23444444' stroke-width='4' stroke-linejoin='round'/%3E%3Cpath d='M29.6567 18.3432L18.343 29.6569' stroke='%23444444' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M18.3433 18.3432L29.657 29.6569' stroke='%23444444' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 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;height:35px}#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-size:15px !important;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/svg+xml;utf8,%3Csvg width='48' height='48' xmlns='http://www.w3.org/2000/svg' stroke='null' style='vector-effect:non-scaling-stroke;' fill='none'%3E%3Cg id='Layer_1'%3E%3Ctitle%3ELayer 1%3C/title%3E%3Cpath stroke='%23000' id='svg_5' d='m1.97999,23.9675l0,0c0,-12.42641 10.0537,-22.5 22.45556,-22.5l0,0c5.95558,0 11.66724,2.37053 15.87848,6.5901c4.21123,4.21957 6.57708,9.94253 6.57708,15.9099l0,0c0,12.4264 -10.05369,22.5 -22.45555,22.5l0,0c-12.40186,0 -22.45556,-10.07359 -22.45556,-22.5zm22.45556,-22.5l0,45m-22.45556,-22.5l44.91111,0' stroke-width='0' fill='%23005fbf'/%3E%3Cpath stroke='%23000' id='svg_7' d='m13.95011,18.65388l0,0l0,-0.00203l0,0.00203zm0.00073,-0.00203l4.2148,5.84978l-4.21553,5.84775l1.54978,2.15123l5.76532,-8l-5.76532,-8l-1.54905,2.15123zm7.46847,13.70285l10.5308,0l0,-3.03889l-10.5308,0l0,3.03889zm3.16603,-6.33312l7.36476,0l0,-3.03889l-7.36476,0l0,3.03889zm-3.16603,-9.37302l0,3.04091l10.5308,0l0,-3.04091l-10.5308,0z' stroke-width='0' fill='%23ffffff'/%3E%3Cpath id='svg_8' d='m135.44834,59.25124l0,0l0,-0.00001l0,0.00001zm0.00004,-0.00001l0.23416,0.02887l-0.2342,0.02886l0.0861,0.01062l0.3203,-0.03948l-0.3203,-0.03948l-0.08606,0.01062zm0.41492,0.06762l0.58504,0l0,-0.015l-0.58504,0l0,0.015zm0.17589,-0.03125l0.40915,0l0,-0.015l-0.40915,0l0,0.015zm-0.17589,-0.04625l0,0.01501l0.58504,0l0,-0.01501l-0.58504,0z' stroke-width='0' stroke='%23000' fill='%23ffffff'/%3E%3C/g%3E%3C/svg%3E") 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}._search-sticky-bar{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} `
  485. for (let index = 0; index< searchUrlMap.length; index++) {
  486. if (window.location.href.match(searchUrlMap[index].matchUrl) != null) {
  487. if (getKeywords() != null){
  488. if (!GM_getValue("punk_setup_search")) {
  489. GM_setValue("punk_setup_search", punkDeafultMark);
  490. }
  491. GM_addStyle(css);
  492. addSearchBox();
  493. addJumpSearchBox();
  494. addOpenSearchBox();
  495. punkSearchClickFunction();
  496. runTabfunc();
  497. window.addEventListener("touchstart", function() {setTimeout(function(){funcTouchStart();}, 500);});
  498. window.addEventListener("popstate", function() {setTimeout(function(){funcPopState();}, 100);});
  499. }
  500. }
  501. }
  502. })();

QingJ © 2025

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