您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
在常用的搜索引擎页面中添加互相切换的按钮。
当前为
// ==UserScript== // @name Search Switcher // @name:zh-CN 一键切换搜索 // @name:zh-TW 壹鍵切換搜索 // @description Add links to each other in search engines. Including multiple search modes. // @description:zh-CN 在常用的搜索引擎页面中添加互相切换的按钮。 // @description:zh-TW 在常用的搜索引擎頁面中添加互相切換的按鈕。 // @author XanderWang // @icon https://i.loli.net/2020/05/29/DxSmHAy2o53FdUY.png // @license GPL-3.0 // @include www.baidu.com/* // @include *.so.com/* // @include *.bing.com/* // @include *.zhihu.com/search?* // @include *.soku.com/* // @include *.sogou.com/* // @include /^https?://[a-z]+\.google\.[a-z,\.]+/.+$/ // @grant none // @run-at document_end // @date 05/29/2020 // @modified 05/29/2020 // @version 1.0.2 // @namespace http://xander/wang // ==/UserScript== { const sites = [ { name: '百度', host: 'baidu.com', link: 'https://www.baidu.com/s', key: 'wd', hide: false }, { name: '必应', host: 'bing.com', link: 'https://bing.com/search', key: 'q', hide: false }, { name: '谷歌', host: 'google.com', link: 'https://www.google.com/search', key: 'q', hide: false }, { name: '谷歌镜像', host: 'google.fuckcloudnative.io', link: 'https://google.fuckcloudnative.io/search', key: 'q', hide: true }, { name: '搜搜', host: 'so.com', link: 'https://www.so.com/s', key: 'q', hide: false }, { name: '搜狗', host: 'sogou.com', link: 'https://www.sogou.com/web', key: 'query', hide: false } ]; const css = ` .search-warpper { position: fixed; left: 0; top: 0; } .search-switcher { position: fixed; opacity: 0.2; top: 80px; right: calc(100% - 10px); z-index: 9999999; transition: all 400ms; } .search-switcher:hover { top: 80px; left: 0px; right:auto; opacity: 1; border-radius: 0 20px; } .search-switcher .search-list { display: flex; flex-direction: column; align-items: center; justify-content: center; box-sizing:border-box; background-color: #000; border-radius: 0px 10px 10px 0px; color: #fff; padding: 10px; box-shadow: 5px 5px 5px #777; } .search-switcher .search-list a { color: #0cf; height: 25px; line-height: 25px; } .search-switcher .search-list a.mirror { font-weight: bold; } `; function setup() { console.log('location:', location); let site; let isMirror; for (let s of sites) { if (location.host.includes(s.host)) { site = s; } } let siteList = sites.filter(({ host , hide}) => !location.hostname.includes(host) && !hide ); console.log('siteList:', siteList); let query = new URLSearchParams(location.search).get(site.key || 'q'); console.log('site:', site, ',query:', query); if( query == null ) { return } const body = document.getElementsByTagName('body')[0]; // 样式 const style = document.createElement('style'); style.innerHTML = css; body.appendChild(style); // 生成切换框 const content = document.createElement('div'); const aTag = ({ link, name, host, mirror, key }) => { let className = ''; let text = name; let href = `${link}?${key}=${query}`; console.log('href:', href); return `<a href='${href}' target='_blank' >${text}</a>`; }; const tags = siteList .filter(({ hidden }) => !hidden) .map(aTag) .join(''); content.innerHTML = ` <div id='search-switcher' class='search-switcher'> <div id='search-list' class="search-list">${tags}</div> </div>`; body.appendChild(content); const searchDiv = document.getElementById('search-switcher')[0]; console.log('searchDiv:', searchDiv.clientHeight); console.log('body:', body.clientHeight); } let href0 = ''; !(function init() { var href = location.href; if (href0 != href) { var oldDOM = document.getElementById('search-switcher'); if (oldDOM) { oldDOM.parentNode.removeChild(oldDOM); } setup(); href0 = href; } setTimeout(init, 2222); })(); } //end userScript