// ==UserScript== // @name Cambridge Dictionary Quick Link (Icon + Shortcut) // @namespace http://tampermonkey.net/ // @version 1.4 // @description Double click to show icon; Alt+Double click to go directly to Cambridge Dictionary (English-Chinese Traditional). // @author Gemini // @match *://*/* // @grant none // @downloadURL https://update.greasyfork.icu/scripts/558477/Cambridge%20Dictionary%20Quick%20Link%20%28Icon%20%2B%20Shortcut%29.user.js // @updateURL https://update.greasyfork.icu/scripts/558477/Cambridge%20Dictionary%20Quick%20Link%20%28Icon%20%2B%20Shortcut%29.meta.js // ==/UserScript== (function() { 'use strict'; const ICON_ID = 'cambridge-quick-link-icon-final'; // 使用 Google Favicon 服務獲取劍橋詞典的高畫質圖示 // Use Google Favicon service to get the high-quality Cambridge Dictionary icon const ICON_URL = 'https://www.google.com/s2/favicons?domain=dictionary.cambridge.org&sz=64'; function removeIcon() { const existingIcon = document.getElementById(ICON_ID); if (existingIcon) { existingIcon.remove(); } } // 點擊其他地方時移除圖示 // Remove icon when clicking elsewhere document.addEventListener('mousedown', function(e) { const icon = document.getElementById(ICON_ID); // 如果點擊的不是圖示本身,就將其移除 // If the click is not on the icon itself, remove it if (icon && !icon.contains(e.target)) { removeIcon(); } }); document.addEventListener('dblclick', function(e) { let selectedText = window.getSelection().toString().trim(); // 檢查是否為英文 // Check if it is English if (selectedText && /^[a-zA-Z-]+$/.test(selectedText)) { // --- 新增功能:如果按住了 Alt 鍵 (New Feature: If Alt key is held down) --- if (e.altKey) { // 直接打開網址,不顯示圖示 // Open URL directly, do not show icon const directUrl = `https://dictionary.cambridge.org/dictionary/english-chinese-traditional/${selectedText}`; window.open(directUrl, '_blank'); return; // 結束函式,不再執行下方的顯示圖示代碼 End function, skip showing icon below } // --- 原有功能:顯示圖示 (Original Feature: Show Icon) --- removeIcon(); const link = document.createElement('a'); link.id = ICON_ID; link.href = `https://dictionary.cambridge.org/dictionary/english-chinese-traditional/${selectedText}`; link.target = '_blank'; const img = document.createElement('img'); img.src = ICON_URL; img.alt = 'Dict'; // 樣式設定 // Style settings Object.assign(img.style, { width: '24px', height: '24px', display: 'block', borderRadius: '4px' }); link.appendChild(img); Object.assign(link.style, { position: 'absolute', left: `${e.pageX + 8}px`, top: `${e.pageY + 8}px`, zIndex: '2147483647', cursor: 'pointer', textDecoration: 'none', border: 'none', outline: 'none', backgroundColor: '#fff', padding: '2px', borderRadius: '5px', boxShadow: '0 2px 5px rgba(0,0,0,0.3)', display: 'flex', alignItems: 'center', justifyContent: 'center' }); document.body.appendChild(link); } }); })();