Greasemonkey не работает?

Поэтому у меня есть следующий сценарий Greasemonkey:

// ==UserScript==
// @name InstaTranslate+
// @namespace http://use.i.E.your.homepage/
// @version 1.0.0
// @description A browser add-on to easily translate words using the Google Translate engine.
// @include http://*
// @copyright 2014+, Tyler Jablonski
// ==/UserScript==
function getSelectedText() {
 var text = "";
 if (typeof window.getSelection != "undefined") {
 text = window.getSelection().toString();
 } else if (typeof document.selection != "undefined" && document.selection.type == "Text") {
 text = document.selection.createRange().text;
 }
 return text;
}

function doSomethingWithSelectedText() {
 var selectedText = getSelectedText();
 if (selectedText && event.keyCode === 81) {
 var canDo = confirm("Would you like to translate this text?");
 if (canDo==true)
 {
 var myword=selectedText;
 var urlSetUp="http://www.translate.google.com/#auto/en/";
 var urlGo=urlSetUp.concat(myword);
 window.open(urlGo);
 }
 }
 else if (event.keyCode === 81) {
 var myword=prompt("What phrase would you like to translate?");
 if (myword!=null)
 {
 var urlSetUp="http://www.translate.google.com/#auto/en/";
 var urlGo=urlSetUp.concat(myword);
 window.open(urlGo);
 }
 }
}

document.********* = doSomethingWithSelectedText;
document.******* = doSomethingWithSelectedText;

К сожалению, это совсем не работает. Однако, когда я копирую и вставляю код в адресную строку и запускаю его таким образом, он отлично работает. Почему это и что я могу сделать, чтобы исправить это?

1 ответ

Измените function doSomethingWithSelectedText() на function doSomethingWithSelectedText(event) или добавьте @grant none в ваш блок метаданных.

licensed under cc by-sa 3.0 with attribution.