// ==UserScript== // @name 剑桥查词 // @namespace https://ld246.com/article/1760544378300 // @version 1.0.2 // @description 在任意网页选中英文后查询剑桥词典,支持发音、全球真人发音、钉住窗口和本地生词本。 // @author wish163 // @match http://*/* // @match https://*/* // @connect dictionary.cambridge.org // @connect dict.eudic.net // @grant GM_xmlhttpRequest // @grant GM_getValue // @grant GM_setValue // @grant GM_registerMenuCommand // @grant GM_openInTab // @grant unsafeWindow // @run-at document-idle // @license MIT // @noframes // ==/UserScript== (() => { 'use strict'; const CONFIG = { autoRead: true, autoReadRegion: 'us', queryWhenPinned: true, maxWords: 3, showSponsor: false, // false 时不显示选词悬浮按钮,仍可通过 cambridgeDictionary.lookup() 查词 showSelectionButton: true, }; const CAMBRIDGE = 'https://dictionary.cambridge.org'; const EN_ZH_PATH = 'dictionary/english-chinese-simplified'; const EN_PATH = 'dictionary/english'; const WORDS_KEY = 'cambridge-browser-wordbook'; const STATE_KEY = 'cambridge-browser-state'; const FAVICON = `${CAMBRIDGE}/zhs/external/images/favicon.ico`; const speakerIcon = ` `; const globeIcon = ` `; const moonIcon = ``; const sunIcon = ``; let lastSelection = ''; let selectionRange = null; let pinned = false; let theme = window.matchMedia?.('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; let requestSerial = 0; let currentAudio = null; let dragState = null; const host = document.createElement('div'); host.id = 'browser-cambridge-dictionary-host'; const root = host.attachShadow({ mode: 'open' }); // 构造样式表不依赖内联