您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Userscript version of "Google Translate This" from https://github.com/andreicristianpetcu/google_translate_this for Tampermonkey or Violentmonkey. v0.5 2019-11-06
// ==UserScript== // @name Inject Google Translate Widget // @description Userscript version of "Google Translate This" from https://github.com/andreicristianpetcu/google_translate_this for Tampermonkey or Violentmonkey. v0.5 2019-11-06 // @author Jefferson "jscher2000" Scher // @namespace JeffersonScher // @version 0.5 // @copyright Copyright 2019 Jefferson Scher. Mostly Copyright 2019 Andrei Cristian Petcu. // @license GPL-3.0 // @match http*://*/* // @grant GM_registerMenuCommand // @grant GM_getValue // @grant GM_setValue // ==/UserScript== var injectedStatus = false, hostarray = []; function injectGoogleTranslateWidget(){ if (window.self !== window.top) return; // Not in frames if (injectedStatus !== false) return; // Not if already injected // From: https://github.com/andreicristianpetcu/google_translate_this/blob/master/scripts/inject_google_translate_content.js as of Sept. 8, 2019 (last line omitted) var gtdiv = document.createElement("div"); gtdiv.setAttribute("id", "google_translate_element"); gtdiv.style.display="none"; document.body.appendChild(gtdiv); var googleTranslateElementInitCode = "function(){ \ new google.translate.TranslateElement({pageLanguage: 'auto', autoDisplay: true}, 'google_translate_element'); \ setTimeout(function(){ \ var iframe = document.getElementsByClassName('goog-te-banner-frame')[0]; \ var iframeDocument = iframe.contentDocument || iframe.contentWindow.document; \ iframeDocument.getElementsByClassName('goog-te-button')[0].children[0].children[0].click(); \ }, 1000); \ }"; var globalFunctionScript = document.createElement('script'); globalFunctionScript.text = "googleTranslateElementInit = " + googleTranslateElementInitCode; globalFunctionScript.type = "text/javascript"; document.getElementsByTagName('head')[0].appendChild(globalFunctionScript); var bg_script = document.createElement('script'); bg_script.type = "text/javascript"; bg_script.src="https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"; document.getElementsByTagName('head')[0].appendChild(bg_script); injectedStatus = true; // not detecting whether it failed due to CSP } function addHost(){ hostarray.push(location.hostname); GM_setValue("autoinjecthosts", JSON.stringify(hostarray)); if (injectedStatus == false) injectGoogleTranslateWidget; } function removeHost(){ var index = hostarray.indexOf(location.hostname); if (index > -1){ hostarray.splice(index, 1); GM_setValue("autoinjecthosts", JSON.stringify(hostarray)); } } // This should work in Violentmonkey and Tampermonkey, but unfortunately not Greasemonkey. try { hostarray = JSON.parse(GM_getValue("autoinjecthosts", "[]")); if (hostarray.includes(location.hostname)){ // auto-inject if (injectedStatus == false) window.setTimeout(injectGoogleTranslateWidget, 100); GM_registerMenuCommand("Stop Auto-Injecting Widget", removeHost); } else { // on-demand GM_registerMenuCommand("Inject Google Translate Widget", injectGoogleTranslateWidget); GM_registerMenuCommand("Auto-Inject on " + location.hostname, addHost); } } catch (err) { console.log('Error adding Inject Google Translate Widget menu items: ' + err.message); }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址