Greasy Fork is available in English.
快速切换搜索引擎,支持PC端、移动端,自动提取搜索关键词,一键跳转,自动隐藏、自动显示。目前支持谷歌、百度、Yandex、Bilibili、知乎等等
// ==UserScript== // @name 搜索引擎切换|搜索跳转(支持PC端+移动端) // @namespace http://tampermonkey.net/ // @version 1.0.3 // @description 快速切换搜索引擎,支持PC端、移动端,自动提取搜索关键词,一键跳转,自动隐藏、自动显示。目前支持谷歌、百度、Yandex、Bilibili、知乎等等 // @author DQIT // @match *://*.google.com*/search* // @match *://*.google.com.hk*/search* // @match *://*.bing.com/search* // @match *://*.baidu.com/s* // @match *://chatgpt.com/* // @match *://metaso.cn/* // @match *://weixin.sogou.com/weixin* // @match *://search.bilibili.com/all* // @match *://m.bilibili.com/search* // @match *://*.zhihu.com/search* // @match *://*.xiao####shu.com/explore* // @match *://*.douyin.com/search/* // @match *://*.yandex.com/* // @match *://*.duckduckgo.com/* // @match *://*.perplexity.ai/* // @match *://*.quark.sm.cn/* // @grant GM_addElement // @license MIT // ==/UserScript== (function() { 'use strict'; // 搜索引擎列表 const engins = [ { name: "Google", searchUrl: "https://www.google.com/search?q="}, { name: "Bing", searchUrl: "https://www.bing.com/search?q="}, { name: "百度", searchUrl: "https://www.baidu.com/s?wd="}, { name: "夸克", searchUrl: "https://quark.sm.cn/s?q="}, { name: "Yandex", searchUrl: "https://yandex.com/search/?text="}, { name: "DuckDuckGo", searchUrl: "https://duckduckgo.com/?q="}, { name: "ChatGPT", searchUrl: "https://chatgpt.com/?hints=search&q="}, { name: "秘塔", searchUrl: "https://metaso.cn/?q="}, { name: "Youtube", searchUrl: "https://www.youtube.com/r###lts?search_query="}, { name: "GitHub", searchUrl: "https://github.com/search?q="}, { name: "知乎", searchUrl: "https://www.zhihu.com/search?q="}, { name: "B站", searchUrl: "https://search.bilibili.com/all?keyword="}, { name: "微信", searchUrl: "https://weixin.sogou.com/weixin?type=2&s_from=input&query="}, { name: "小红书", searchUrl: "https://www.xiao####shu.com/explore?q="}, { name: "抖音", searchUrl: "https://www.douyin.com/search/"}, { name: "Perplexity", searchUrl: "https://www.perplexity.ai/?q="}, ]; const paramNames = ["wd", "q", "query", "keyword", "text", "word", "search_query"] function getSearchKeyword() { const queryString = window.location.search; if (!queryString) { return null; } const urlParams = new URLSearchParams(queryString); for (const paramName of paramNames) { if (urlParams.has(paramName)) { return urlParams.get(paramName); } } return null; } function createStyle() { const style = document.createElement('style'); style.textContent = ` /* 公共样式 */ :root { --bg-blur: 12px; --button-spacing: 8px; } /* 设备检测容器 */ #search-tool-container { position: fixed; backdrop-filter: blur(var(--bg-blur)); -webkit-backdrop-filter: blur(var(--bg-blur)); background-color: rgba(255, 255, 255, 0.7); border-radius: 16px; box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1); transition: all 0.3s ease; z-index: 9999 } /* 彩色模糊背景元素 */ #search-tool-container::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 30% 30%, rgba(79, 96, 204, 0.2) 0%, rgba(100, 100, 255, 0.2) 100%); filter: blur(40px); z-index: -1; } /* PC端样式 */ @media (min-width: 768px) { #search-tool-container { width: 100px; height: 700px; top: 150px; left: 10px; padding: 16px 8px; display: flex; flex-direction: column; gap: var(--button-spacing); } .search-tool-button { background: rgba(255, 255, 255, 0.15); border: 1px solid rgba(255, 255, 255, 0.2); padding: 8px; border-radius: 8px; cursor: pointer; transition: all 0.3s ease; backdrop-filter: blur(4px); display: flex; justify-content: center; } .search-tool-button:hover { background: rgba(255, 255, 255, 0.3); transform: translateX(3px); } } /* 移动端样式 */ @media (max-width: 767px) { #search-tool-container { width: 100%; height: 40px; bottom: 0; left: 0; right: 0; padding: 4px 8px; display: flex; overflow-x: auto; scrollbar-width: none; border-radius: 8px 8px 0 0; background: linear-gradient(135deg, rgb(212, 227, 252, 0.4), rgb(240, 239, 253, 0.4)); } #search-tool-container::-webkit-scrollbar { display: none; } .search-tool-button { flex-shrink: 0; min-width: 60px; height: 32px; margin: 0 4px; padding: 0 12px; border-radius: 16px; background: rgba(0, 0, 0, 0.1); display: flex; align-items: center; justify-content: center; transition: all 0.2s ease; color: rgba(0, 0, 0, 0.9); } .search-tool-button:active { transform: scale(0.95); } } /* 白天模式 */ @media (prefers-color-scheme: light) { #search-tool-container { background-color: rgba(255, 255, 255, 0.7); } } /* 夜间模式 */ @media (prefers-color-scheme: dark) { #search-tool-container { background-color: rgba(0, 0, 0, 0.5); } } /* 夜间模式按钮调整 */ @media (prefers-color-scheme: dark) { .search-tool-button { background: rgba(255, 255, 255, 0.1); color: rgba(255, 255, 255, 0.9); } } `; document.head.appendChild(style); } // 创建按钮 function createSearchTool(){ //创建容器 const container = document.createElement('div'); container.id = 'search-tool-container'; //创建按钮 for (const engine of engins) { const btn = document.createElement('div'); btn.classList.add('search-tool-button') btn.textContent = engine.name; // 绑定点击跳转事件 btn.addEventListener('click', function() { let keyword = getSearchKeyword() window.open(engine.searchUrl + encodeURIComponent(keyword),'_self') }); container.appendChild(btn); } //显示容器 document.body.appendChild(container); let lastScrollTop = 0; window.addEventListener('scroll', function() { const scrollTop = window.pageYOffset || document.documentElement.scrollTop; if (scrollTop > lastScrollTop) { // 向下滚动,隐藏横条 container.style.display = 'none'; } else { // 向上滚动,显示横条 container.style.display = 'inline-flex'; } lastScrollTop = scrollTop; }); } function init(){ let keyword = getSearchKeyword(); if(!keyword){ //未提取到关键词不显示 return; } else { createStyle(); createSearchTool(keyword); } } // 使用 MutationObserver 来确保脚本在动态加载的页面上也能正常工作 const observer = new MutationObserver((mutations, obs) => { const body = document.querySelector('body'); if (body) { init(); obs.disconnect(); } }); observer.observe(document.documentElement, { childList: true, subtree: true }); })();