在辞典网站左侧显示一个快速切换列表,节省「另开辞典页面」和「输入关键词」的动作及时间,提高查询效率。参考了自己撸的另一款:[搜索引擎切换器 / Search Engine Switcher](https://greasyfork.org/zh-CN/scripts/446492)。
// ==UserScript== // @name 在线辞典切换器 / Online Dictionary Switcher // @namespace http://tampermonkey.net/ // @version 0.1.31 // @description 在辞典网站左侧显示一个快速切换列表,节省「另开辞典页面」和「输入关键词」的动作及时间,提高查询效率。参考了自己撸的另一款:[搜索引擎切换器 / Search Engine Switcher](https://greasyfork.org/zh-CN/scripts/446492)。 // @author http://twitter.com/rockucn // @icon https://www.google.com/s2/favicons?sz=64&domain=greasyfork.org // @match *://www.merriam-webster.com/dictionary/* // @match *://www.ldoceonline.com/dictionary/* // @match *://dictionary.cambridge.org/dictionary/english/* // @match *://www.vocabulary.com/dictionary/* // @match *://www.collinsdictionary.com/dictionary/english/* // @match *://www.oxfordlearnersdictionaries.com/definition/english/* // @match *://www.britannica.com/dictionary/* // @match *://www.macmillandictionary.com/dictionary/british/* // @match *://www.etymonline.com/search?q=* // @match *://cn.bing.com/dict/search?q=* // @match *://www.urbandictionary.com/define.php?term=* // @match *://en.wikipedia.org/wiki/* // @match *://www.voicetube.com/definition/* // @match *://dict.youdao.com/w/* // @match *://dict.eudic.net/dicts/en/* // @match *://fanyi.sogou.com/text?keyword=* // @match *://www.jukuu.com/search.php?q=* // @match *://www.91dict.com/words* // @match *://www.zdic.net/hans/* // @match *://www.moedict.tw/* // @match *://youglish.com/pronounce/* // @match *://www.dictionary.com/browse/* // @match *://www.eigochigai.com/search?q=* // @match *://en.wiktionary.org/wiki/* // @grant unsafeWindow // @grant window.onload // @grant GM_getValue // @grant GM_setValue // @run-at document-body // @license MIT // ==/UserScript== // 辞典网址配置 const urlMapping = [ { name: "Merriam-Webster", dicUrl: "https://www.merriam-webster.com/dictionary/", keyName: "", testUrl: /https:\/\/www.merriam-webster.com\/dictionary\/*/, }, { name: "Longman", dicUrl: "https://www.ldoceonline.com/dictionary/", keyName: "", testUrl: /https:\/\/www.ldoceonline.com\/dictionary\/*/, }, { name: "Cambridge", dicUrl: "https://dictionary.cambridge.org/dictionary/english/", keyName: "", testUrl: /https:\/\/dictionary.cambridge.org\/dictionary\/english\/*/, }, { name: "Vocabulary", dicUrl: "https://www.vocabulary.com/dictionary/", keyName: "", testUrl: /https:\/\/www.vocabulary.com\/dictionary\/*/, }, { name: "Collins", dicUrl: "https://www.collinsdictionary.com/dictionary/english/", keyName: "", testUrl: /https:\/\/www.collinsdictionary.com\/dictionary\/english\/*/, }, { name: "Oxford", dicUrl: "https://www.oxfordlearnersdictionaries.com/definition/english/", keyName: "", testUrl: /https:\/\/www.oxfordlearnersdictionaries.com\/definition\/english\/*/, }, { name: "Britannica", dicUrl: "https://www.britannica.com/dictionary/", keyName: "", testUrl: /https:\/\/www.britannica.com\/dictionary\/*/, }, { name: "Macmillan", dicUrl: "https://www.macmillandictionary.com/dictionary/british/", keyName: "", testUrl: /https:\/\/www.macmillandictionary.com\/dictionary\/british\/*/, }, { name: "Etymology", dicUrl: "https://www.etymonline.com/search?q=", keyName: "q", testUrl: /https:\/\/www.etymonline.com\/search.*/, }, { name: "Wiktionary", dicUrl: "https://en.wiktionary.org/wiki/", keyName: "", testUrl: /https:\/\/en.wiktionary.org\/wiki\/*/, }, { name: "Bing", dicUrl: "https://cn.bing.com/dict/search?q=", keyName: "q", testUrl: /https:\/\/cn.bing.com\/dict\/search.*/, }, { name: "Urban", dicUrl: "https://www.urbandictionary.com/define.php?term=", keyName: "term", testUrl: /https:\/\/www.urbandictionary.com\/define.php.*/, }, { name: "Wikipedia", dicUrl: "https://en.wikipedia.org/wiki/", keyName: "", testUrl: /https:\/\/en.wikipedia.org\/wiki\/*/, }, { name: "VoiceTube", dicUrl: "https://www.voicetube.com/definition/", keyName: "", testUrl: /https:\/\/www.voicetube.com\/definition\/*/, }, { name: "YouGlish", dicUrl: "https://youglish.com/pronounce/", keyName: "", testUrl: /https:\/\/youglish.com\/pronounce\/*/, }, { name: "Dictionary", dicUrl: "https://www.dictionary.com/browse/", keyName: "", testUrl: /https:\/\/www.dictionary.com\/browse\/*/, }, { name: "人人词典", dicUrl: "https://www.91dict.com/words?w=", keyName: "w", testUrl: /https:\/\/www.91dict.com\/words.*/, }, { name: "有道词典", dicUrl: "https://dict.youdao.com/w/", keyName: "", testUrl: /https:\/\/dict.youdao.com\/w\/*/, }, { name: "搜狗翻译", dicUrl: "https://fanyi.sogou.com/text?keyword=", keyName: "keyword", testUrl: /https:\/\/fanyi.sogou.com\/text.*/, }, { name: "欧路词典", dicUrl: "https://dict.eudic.net/dicts/en/", keyName: "", testUrl: /https:\/\/dict.eudic.net\/dicts\/en\/*/, }, { name: "句酷", dicUrl: "http://www.jukuu.com/search.php?q=", keyName: "q", testUrl: /http:\/\/www.jukuu.com\/search.php.*/, }, { name: "Eigochigai", dicUrl: "https://www.eigochigai.com/search?q=", keyName: "q", testUrl: /https:\/\/www.eigochigai.com\/search.*/, }, { name: "汉典", dicUrl: "https://www.zdic.net/hans/", keyName: "", testUrl: /https:\/\/www.zdic.net\/hans\/*/, }, { name: "国语辞典/两岸辞典", dicUrl: "https://www.moedict.tw/", keyName: "", testUrl: /https:\/\/www.moedict.tw\/*/, }, ]; // JS 获取 url 参数 function getQueryVariable(variable) { let query = window.location.search.substring(1); if (query === "") { return decodeURIComponent(window.location.href.split("/").pop()); } else { let pairs = query.split("&"); for (let pair of pairs) { let [key, value] = pair.split("="); if (key === variable) { return decodeURIComponent(value); } } } return null; } // 从 url 中获取搜索关键词 function getKeywords() { let keywords = ""; for (let item of urlMapping) { if (item.testUrl.test(window.location.href)) { keywords = getQueryVariable(item.keyName); break; } } console.log(keywords); return keywords; } // 添加节点 function addBox() { // 主元素 const dics = document.createElement("div"); dics.id = "dic-app-box"; dics.style = ` position: fixed; top: 120px; left: 12px; width: 78px; background-color: hsla(200, 40%, 96%, .8); font-size: 12px; border-radius: 6px; z-index: 99999;`; document.body.insertAdjacentElement("afterbegin", dics); // 标题 let title = document.createElement("span"); title.innerText = "在线辞典"; title.style = ` display: block; color: hsla(211, 60%, 35%, .8); text-align: center; margin-top: 10px; margin-bottom: 5px; font-size: 12px; font-weight: bold; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select:none;`; dics.appendChild(title); // 辞典列表 for (let index in urlMapping) { let item = urlMapping[index]; // 列表样式 let style = ` display: block; color: hsla(211, 60%, 35%, .8) !important; padding: 6px 8px; text-decoration: none;`; let defaultStyle = style + ` color: hsla(211, 60%, 35%, .8) !important;`; let hoverStyle = style + ` background-color: hsla(211, 60%, 35%, .1);`; // 设置辞典链接 let a = document.createElement("a"); a.innerText = item.name; a.style = defaultStyle; a.className = "dic-a"; a.href = item.dicUrl + getKeywords(); // 鼠标移入&移出效果,相当于 hover a.onmouseenter = function() { this.style = hoverStyle; }; a.onmouseleave = function() { this.style = defaultStyle; }; dics.appendChild(a); } } (function() { "use strict"; window.onload = addBox(); })();