您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Search with selected text by pressing s(Google), t(Translate) or o(Oxford) within 2 seconds.
// ==UserScript== // @name SelectAndGo // @namespace com.gmail.fujifruity.greasemonkey // @version 1.3 // @description Search with selected text by pressing s(Google), t(Translate) or o(Oxford) within 2 seconds. // @author fujifruity // @match *://*/* // @grant GM.openInTab // @license MIT // ==/UserScript== { const timeoutMs = 2000 const shortcuts = selection => ({ s: () => GM.openInTab("https://www.google.com/search?q=" + selection, false), t: () => GM.openInTab("https://translate.google.com/#en/ja/" + selection, false), i: () => GM.openInTab("https://www.google.com/search?tbm=isch&q=" + selection, false), m: () => GM.openInTab("https://www.google.com/maps/search/" + selection, false), o: () => { const url = "https://www.oxfordlearnersdictionaries.com/search/english/?q=" // the website requires hyphen-separated words const query = selection.replace(/\s+/g, '-') GM.openInTab(url + query, false) }, c: () => alert(selection.length + ' characters') // count chars }) const onKeydown = event => { if (["INPUT", "TEXTAREA"].includes(event.target.tagName)) return if (event.ctrlKey || event.altKey) return const selection = window.getSelection().toString() shortcuts(selection)[event.key]() } const unsetShortcut = () => window.removeEventListener('keydown', onKeydown) window.addEventListener('selectstart', () => { window.addEventListener('keydown', onKeydown) // unset shortcuts in seconds. window.onmouseup = () => { setTimeout(unsetShortcut, timeoutMs) window.onmouseup = null } // unset shortcuts when selection is triggerd by ctrl+a window.onkeyup = () => { setTimeout(unsetShortcut, timeoutMs) window.onkeyup = null } }) }