Greasy Fork镜像 支持简体中文。

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

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

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

  1. // ==UserScript==
  2. // @name 聚合搜索引擎切换导航[手机版][移动端]
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.2.02
  5. // @description 在搜索顶部显示一个聚合搜索引擎切换导航,模拟M浏览器的综合搜索引擎。专注手机网页搜索引擎切换,纯粹的搜索。SearchJump、搜索跳转、聚合搜索。
  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. // @license MIT
  19. // ==/UserScript==
  20.  
  21. const searchUrlMap = [
  22. {
  23. name: "必应",
  24. searchUrl: "https://cn.bing.com/search?q=",
  25. searchkeyName: ["q"],
  26. matchUrl:/bing\.com.*?search\?q=?/g,
  27. mark:"Bing",
  28. },
  29. {
  30. name: "百度",
  31. searchUrl: "https://baidu.com/s?wd=",
  32. searchkeyName: ["wd", "word"],
  33. matchUrl:/baidu\.com.*?w(or)?d=?/g,
  34. mark:"Baidu",
  35. },
  36. {
  37. name: "谷歌",
  38. searchUrl: "https://www.google.com/search?q=",
  39. searchkeyName: ["q"],
  40. matchUrl:/google\.com.*?search.*?q=/g,
  41. mark:"Google",
  42. },
  43. {
  44. name: "知乎",
  45. searchUrl: "https://www.zhihu.com/search?q=",
  46. searchkeyName: ["q"],
  47. matchUrl:/zhihu\.com\/search.*?q=/g,
  48. mark:"Zhihu",
  49. },
  50. {
  51. name: "豆瓣",
  52. searchUrl: "https://m.douban.com/search/?query=",
  53. searchkeyName: ["query"],
  54. matchUrl:/douban\.com\/search.*?query=/g,
  55. mark:"Douban",
  56. },
  57. {
  58. name: "F搜",
  59. searchUrl: "https://fsoufsou.com/search?q=",
  60. searchkeyName: ["q"],
  61. matchUrl:/fsoufsou\.com\/.*?q=/g,
  62. mark:"Fsou",
  63. },
  64. {
  65. name: "360",
  66. searchUrl: "https://m.so.com/s?q=",
  67. searchkeyName: ["q"],
  68. matchUrl:/\.so\.com.*?q=/g,
  69. mark:"360",
  70. },
  71. {
  72. name: "无追",
  73. searchUrl: "https://www.wuzhuiso.com/s?q=",
  74. searchkeyName: ["q"],
  75. matchUrl:/wuzhuiso\.com.*?q=/g,
  76. mark:"Wuzhui",
  77. },
  78. {
  79. name: "夸克",
  80. searchUrl: "https://quark.sm.cn/s?q=",
  81. searchkeyName: ["q"],
  82. matchUrl:/sm\.cn.*?q=/g,
  83. mark:"Quark",
  84. },
  85. {
  86. name: "搜狗",
  87. searchUrl: "https://m.sogou.com/web/searchList.jsp?keyword=",
  88. searchkeyName: ["keyword"],
  89. matchUrl:/sogou\.com.*?keyword=/g,
  90. mark:"Sougou",
  91. },
  92. {
  93. name: "头条",
  94. searchUrl: "https://so.toutiao.com/search/?keyword=",
  95. searchkeyName: ["keyword"],
  96. matchUrl:/toutiao\.com.*?keyword=/g,
  97. mark:"Toutiao",
  98. },
  99. {
  100. name: "Yandex",
  101. searchUrl: "https://yandex.com/search/touch/?text=",
  102. searchkeyName: ["text"],
  103. matchUrl:/yandex\.com.*?text=/g,
  104. mark:"Yandex",
  105. },
  106. {
  107. name: "DuckDuckGo",
  108. searchUrl: "https://duckduckgo.com/?q=",
  109. searchkeyName: ["q"],
  110. matchUrl:/duckduckgo\.com.*?q=/g,
  111. mark:"DuckDuckGo",
  112. },
  113. {
  114. name: "Murena",
  115. searchUrl: "https://spot.murena.io/search?q=",
  116. searchkeyName: ["q"],
  117. matchUrl:/murena\.io.*?q=/g,
  118. mark:"Murena",
  119. }
  120.  
  121. ];
  122.  
  123.  
  124. const punkDeafultMark = "Bing-Baidu-Google-Zhihu-Douban-Fsou-360-Wuzhui-Quark-Sougou-Toutiao-Yandex-DuckDuckGo";
  125.  
  126. function getSearchKeywords(name) {
  127. const url_string = window.location.href;
  128. const url = new URL(url_string);
  129. return url.searchParams.get(name);
  130. }
  131.  
  132.  
  133. function getKeywords() {
  134. let keywords = "";
  135. for (let urlItem of searchUrlMap) {
  136. //if( window.location.href.indexOf(urlItem.matchUrl) >= 0 ) {
  137. if (window.location.href.match(urlItem.matchUrl) != null) {
  138. for (let keyItem of urlItem.searchkeyName) {
  139. if ( window.location.href.indexOf(keyItem) >= 0 )
  140. {
  141. keywords = getSearchKeywords(keyItem);
  142. return keywords;
  143. }
  144. }
  145. }
  146. }
  147. return keywords;
  148. }
  149.  
  150. function addOpenSearchBox(){
  151. const oDivtemp = document.createElement("div");
  152. oDivtemp.id = "punk-search-open-box";
  153. oDivtemp.style.display = "none";
  154. document.getElementById("punkjet-search-box").after(oDivtemp);
  155.  
  156. }
  157.  
  158. const jumpSocialMap = [
  159. {
  160. name: "哔哩哔哩",
  161. searchUrl: "https://m.bilibili.com/search?keyword=",
  162. },
  163. {
  164. name: "微博",
  165. searchUrl: "https://m.weibo.cn/search?containerid=100103&q=",
  166. },
  167. {
  168. name: "豆瓣阅读",
  169. searchUrl: "https://read.douban.com/search?q=",
  170. },
  171.  
  172.  
  173. {
  174. name: "小红书",
  175. searchUrl: "https://m.sogou.com/web/xiaohongshu?keyword=",
  176. },
  177. {
  178. name: "微信文章",
  179. searchUrl: "https://weixin.sogou.com/weixinwap?type=2&query=",
  180. },
  181. {
  182. name: "维基百科",
  183. searchUrl: "https://zh.m.wikipedia.org/wiki/",
  184. },
  185. {
  186. name: "GreasyFork",
  187. searchUrl: "https://gf.qytechs.cn/scripts?q=",
  188. },
  189. {
  190. name: "推特",
  191. searchUrl: "https://mobile.twitter.com/search/",
  192. },
  193.  
  194.  
  195. ];
  196.  
  197.  
  198. function addJumpSearchBox(){
  199. const searchJumpBox = document.createElement("div");
  200. searchJumpBox.id = "punk-search-jump-box";
  201. searchJumpBox.style.display = "none";
  202. document.getElementById("punkjet-search-box").appendChild(searchJumpBox);
  203.  
  204. let jumpAllSearchTitle = document.createElement("h1");
  205. jumpAllSearchTitle.innerText = "全部搜索引擎:";
  206. jumpAllSearchTitle.className = "search-engine-highlighta";
  207. //a.href = item.searchUrl + getKeywords();
  208. searchJumpBox.appendChild(jumpAllSearchTitle);
  209.  
  210. var ulList = document.createElement('ul');
  211. searchJumpBox.appendChild(ulList);
  212. let fragment = document.createDocumentFragment();//创建一个文档碎片,减少DOM渲染次数
  213. for (let index in searchUrlMap) {
  214. let liItem = document.createElement('li');
  215. let a = document.createElement("a");
  216. a.innerText = searchUrlMap[index].name;
  217. a.className = "search-engine-highlighta";
  218. a.href = searchUrlMap[index].searchUrl + getKeywords();
  219. liItem.appendChild(a);
  220. fragment.appendChild(liItem);
  221. }
  222. ulList.appendChild(fragment);
  223.  
  224. let jumpSocialTitle = document.createElement("h1");
  225. jumpSocialTitle.innerText = "社交(页面只跳转,无导航):";
  226. jumpSocialTitle.className = "search-engine-highlighta";
  227. //a.href = item.searchUrl + getKeywords();
  228. searchJumpBox.appendChild(jumpSocialTitle);
  229.  
  230. var ulList1 = document.createElement('ul');
  231. searchJumpBox.appendChild(ulList1);
  232. let fragment1 = document.createDocumentFragment();//创建一个文档碎片,减少DOM渲染次数
  233. for (let index in jumpSocialMap) {
  234. let liItem1 = document.createElement('li');
  235. let a1 = document.createElement("a");
  236. a1.innerText = jumpSocialMap[index].name;
  237. a1.className = "search-engine-highlighta";
  238. a1.href = jumpSocialMap[index].searchUrl + getKeywords();
  239. liItem1.appendChild(a1);
  240. fragment1.appendChild(liItem1);
  241. }
  242. ulList1.appendChild(fragment1);
  243.  
  244. let jumpSortTitle = document.createElement("h1");
  245. jumpSortTitle.innerText = "导航栏排序:";
  246. jumpSortTitle.className = "search-engine-highlighta";
  247. searchJumpBox.appendChild(jumpSortTitle);
  248.  
  249. let jumpSortDesc = document.createElement("div");
  250. jumpSortDesc.className = "jump-sort-discription";
  251. searchJumpBox.appendChild(jumpSortDesc);
  252.  
  253. let a2 = document.createElement("a");
  254. a2.innerText = "格式举例:Quark-Zhihu-Douban-360\n显示导航:夸克、知乎、豆瓣、360\n支持的格式:Bing-Baidu-Google-Zhihu-Douban-Fsou-360-Wuzhui-Quark-Sougou-Toutiao-Yandex-DuckDuckGo-Murena";
  255. a2.className = "search-engine-highlighta";
  256. jumpSortDesc.appendChild(a2);
  257.  
  258. let punkJumpButton = document.createElement("button");
  259. punkJumpButton.innerText = "点击输入排序";
  260. punkJumpButton.className = "punk-jump-sort-btn";
  261. searchJumpBox.appendChild(punkJumpButton);
  262.  
  263. punkJumpButton.onclick = function () {
  264. let sss = prompt("请排序! 格式:" + punkDeafultMark);
  265. if (sss) {
  266. GM_setValue("punk_setup_search", sss);
  267. }
  268. //alert("用户设置" + GM_getValue("punk_setup_search"));
  269. }
  270.  
  271. let punkJumpClose = document.createElement("button");
  272. punkJumpClose.innerText = "收起";
  273. punkJumpClose.className = "punk-jump-sort-btn";
  274. searchJumpBox.appendChild(punkJumpClose);
  275.  
  276. punkJumpClose.onclick = function () {
  277. document.getElementById("punk-search-jump-box").style.display = `none`;
  278. }
  279. }
  280.  
  281.  
  282. function punkSearchClickFunction(){
  283.  
  284. let btnPunkOpen = document.querySelector("#punk-search-open-box");
  285. btnPunkOpen.onclick = function () {
  286. var x = document.getElementById("punkjet-search-box");
  287. if (x.style.display == "none") {
  288. x.style.display = "block";
  289. document.getElementsByTagName('body')[0].style = "margin-top: 35px !important;";
  290. } else {
  291. x.style.display = "none";
  292. document.getElementsByTagName('body')[0].style = "margin-top: 0px !important;";
  293. }
  294. }
  295.  
  296.  
  297. let btnSet = document.querySelector("#search-setting-box");
  298. btnSet.onclick = function () {
  299. var punkjump = document.getElementById("punk-search-jump-box");
  300. if (punkjump.style.display === "none") {
  301. punkjump.style.display = "block";
  302. } else {
  303. punkjump.style.display = `none`;
  304. }
  305. /*
  306. let sss = prompt("请排序! 格式:" + punkDeafultMark);
  307. if (sss) {
  308. GM_setValue("punk_setup_search", sss);
  309. }
  310. //alert("用户设置" + GM_getValue("punk_setup_search"));
  311. */
  312. }
  313.  
  314. let btnClose = document.querySelector("#search-close-box");
  315. let punkNavi = document.querySelector("#punkjet-search-box");
  316. btnClose.onclick = function () {
  317. var x = document.getElementById("punk-search-open-box");
  318. if (x.style.display === "none") {
  319. x.style.display = "block";
  320. }
  321. punkNavi.style.display = `none`;
  322. document.getElementsByTagName('body')[0].style = "margin-top: 0px !important;";
  323. }
  324.  
  325. }
  326.  
  327.  
  328. function addSearchBox() {
  329. const punkJetBox = document.createElement("div");
  330. punkJetBox.id = "punkjet-search-box";
  331.  
  332. const searchBox = document.createElement("div");
  333. searchBox.id = "punk-search-navi-box";
  334. punkJetBox.appendChild(searchBox);
  335.  
  336. const needHidebox = document.createElement("div");
  337. needHidebox.id = "punk-need-hide-box";
  338. searchBox.appendChild(needHidebox);
  339.  
  340. const appBoxDiv = document.createElement("div");
  341. appBoxDiv.id = "punk-search-app-box";
  342. needHidebox.appendChild(appBoxDiv);
  343.  
  344. var ulList = document.createElement('ul');
  345. appBoxDiv.appendChild(ulList);
  346.  
  347. let fragment = document.createDocumentFragment();//创建一个文档碎片,减少DOM渲染次数
  348.  
  349. let showList = GM_getValue("punk_setup_search").split('-');
  350. for (let showListIndex in showList) {
  351. for (let index in searchUrlMap) {
  352. let item = searchUrlMap[index];
  353. if (item.mark == showList[showListIndex]) {
  354. let liItem = document.createElement('li');
  355. let a = document.createElement("a");
  356. a.innerText = item.name;
  357.  
  358. //if ( window.location.href.indexOf(item.matchUrl) >= 0 ) {
  359. if (window.location.href.match(item.matchUrl) != null) {
  360. a.className = "search-engine-highlight";
  361. }
  362. a.href = item.searchUrl + getKeywords();
  363.  
  364. liItem.appendChild(a);
  365. fragment.appendChild(liItem);
  366. break;
  367. }
  368. }
  369. }
  370. ulList.appendChild(fragment);
  371.  
  372. const setBoxDiv = document.createElement("div");
  373. setBoxDiv.id = "search-setting-box";
  374. setBoxDiv.innerHTML = `<span id="punkBtnSet"><p></p > </span>`;
  375.  
  376. needHidebox.appendChild(setBoxDiv);
  377.  
  378. const closeBoxDiv = document.createElement("div");
  379. closeBoxDiv.id = "search-close-box";
  380. closeBoxDiv.innerHTML = `<span id="punkBtnClose"><p></p ></span>`;
  381. searchBox.appendChild(closeBoxDiv);
  382.  
  383. document.getElementsByTagName('head')[0].after(punkJetBox);
  384.  
  385.  
  386.  
  387. }
  388.  
  389.  
  390. (function () {
  391. "use strict";
  392.  
  393. const css =
  394. `
  395. #punkjet-search-box{
  396. opacity:1 !important;
  397. position: fixed;
  398. flex-direction: column;
  399. top: 0px;
  400. left: 0px;
  401. width: 100%;
  402. height:35px;
  403. background-color: #FFFFFF !important;
  404. font-size: 15px;
  405. border-radius: 1px;
  406. z-index: 9999999;
  407. justify-content: flex-end;
  408. }
  409. #punk-search-navi-box {
  410. display: -webkit-flex;
  411. display:flex;
  412. width: 100%;
  413. height:35px;
  414. }
  415. #punk-search-jump-box{
  416. padding: 8px;
  417. background-color: #FFFFFF !important;
  418. /*border-bottom-style:solid;*/
  419. box-shadow:0px 0px 1px 0px #000;
  420. }
  421.  
  422. #punk-search-app-box {
  423. flex:1;
  424. width: 0;
  425. }
  426.  
  427. #punk-need-hide-box{
  428. flex:1;
  429. width: 0;
  430. display:flex;
  431. }
  432. #search-setting-box {
  433. flex: 0 0 30px;
  434. text-align: center;
  435. margin: auto;
  436. 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;
  437. background-size:contain;
  438. width:100%;
  439. height:18px;
  440. }
  441. #search-close-box {
  442. flex: 0 0 29px;
  443. text-align: center;
  444. margin: auto;
  445. background:url(data:image/png;base64,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) no-repeat center;
  446. background-size:contain;
  447. width:100%;
  448. height:18px;
  449. }
  450.  
  451. #punk-search-app-box ul {
  452. margin: 0;
  453. padding: 0;
  454. overflow: hidden;
  455. overflow-x: auto;
  456. list-style: none;
  457. white-space:nowrap;
  458. }
  459.  
  460. #punk-search-app-box ul::-webkit-scrollbar {
  461. display: none !important;
  462. }
  463.  
  464. #punk-search-app-box li {
  465. margin-left: 0px;
  466. display: inline-block;
  467. }
  468.  
  469. #punk-search-app-box ul li a {
  470. display: block;
  471. /*color: #767676 !important;*/
  472. color: #666666 !important;
  473. padding: 8px;
  474. text-decoration: none;
  475. font-weight:bold;
  476. /*background-color: hsla(211, 60%, 35%, .1);*/
  477. font-family:Helvetica Neue,Helvetica,Arial,Microsoft Yahei,Hiragino Sans GB,Heiti SC,WenQuanYi Micro Hei,sans-serif;
  478. }
  479.  
  480. .search-engine-highlight {
  481. background-color: hsla(211, 60%, 35%, .1) !important;
  482. }
  483.  
  484.  
  485. #punk-search-open-box {
  486. position:fixed;
  487. left:22px;
  488. bottom:64px;
  489. height:36px;
  490. width:36px;
  491. font-size:15px;
  492. text-align: center;
  493. padding: 10px;
  494. border-radius: 5px;
  495. z-index:9999998;
  496. /*background-color: hsla(211, 60%, 35%, .1) !important;*/
  497. background:url(data:image/png;base64,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) no-repeat center;
  498. background-size:contain;
  499. }
  500. #punk-search-open-box, ::after, ::before {
  501. box-sizing: initial !important;
  502. }
  503. #punk-search-jump-box h1{
  504. font-size: 14px !important;
  505. color: #666666 !important;
  506. font-weight:bold;
  507. margin:10px 4px 10px 4px;
  508. }
  509. #punk-search-jump-box ul {
  510. margin-left:0px;
  511. padding: 0;
  512. overflow: hidden;
  513. overflow-x: auto;
  514. list-style: none;
  515. }
  516. #punk-search-jump-box li {
  517. margin: 4px;
  518. display: inline-block;
  519. vertical-align: middle;
  520. border-radius: 2px;
  521. background-color: hsla(211, 60%, 35%, .1) !important;
  522. }
  523.  
  524. #punk-search-jump-box a {
  525. display: block;
  526. color: #666666 !important;
  527. padding: 3px;
  528. margin:2px;
  529. font-size: 14px;
  530. font-family: Helvetica Neue,Helvetica,Arial,Microsoft Yahei,Hiragino Sans GB,Heiti SC,WenQuanYi Micro Hei,sans-serif;
  531. }
  532. .jump-sort-discription {
  533. margin:5px 4px;
  534. }
  535. .punk-jump-sort-btn {
  536. background-color: #00809dd1;
  537. border: none;
  538. color: white;
  539. padding: 8px 64px;
  540. text-align: center;
  541. text-decoration: none;
  542. display: inline-block;
  543. font-size: 12px;
  544. margin: 4px 8px;
  545. cursor: pointer;
  546. border-radius: 4px;
  547. width: 96%;
  548. }
  549. #punk-search-open-box + body {
  550. margin-top: 30px !important;
  551. position: relative !important;
  552. }
  553.  
  554. .his-wrap-new .fix-wrap {
  555. top:35px !important;
  556. }
  557.  
  558. `
  559. for (let index in searchUrlMap) {
  560. if (window.location.href.match(searchUrlMap[index].matchUrl) != null) {
  561. if (!GM_getValue("punk_setup_search")) {
  562. GM_setValue("punk_setup_search", punkDeafultMark);
  563. }
  564. GM_addStyle(css);
  565. addSearchBox();
  566. addJumpSearchBox();
  567. addOpenSearchBox();
  568. punkSearchClickFunction();
  569. }
  570. }
  571. })();

QingJ © 2025

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