Моя определенная переменная (с unsafeWindow) в Greasemonkey не работает - PullRequest
0 голосов
/ 15 сентября 2011

Я хочу добавить на сайт ссылку, подобную этой, с помощью моего сценария Greasemonkey:

<a href="#" id="helloworld" onClick="alert(myGlobalVar);">Click Me!</a>

, и в своем сценарии я написал

unsafeWindow.myGlobalVar = "Hello world!";

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

Я также попробовал этот метод:

myScript = document.createElement('script');
myScript.setAttribute("type", "text/javascript");
myScript.setAttribute("language", "javascript");;
myScript.textContent = "var myGlobalVar = 'Hello world!';";

document.body.appendChild(myScript);
document.body.removeChild(myScript);

и, конечно, это тоже не сработало.

Какой момент я упускаю?Я также попытался изменить его свойство onClick с помощью addEventListener, но это не сработало.

Вы можете проверить это: http://jsfiddle.net/C65rm/ Я скопировал часть кода javascript прямо отсюда: http://wiki.greasespot.net/UnsafeWindow

Кстати, наконец, я хочу сказать, что на самом деле я не пытаюсь определить глобальную переменную, но пытаюсь определить глобальную функцию.В моих примерах здесь я использовал переменные, чтобы прояснить для понимания.

Заранее спасибо.

1 Ответ

0 голосов
/ 16 сентября 2011

решаемая. Я публикую свое решение здесь, если кто-то страдает от этой глупой проблемы.

var myDiv = document.createElement("div");
myDiv.innerHTML = "<a href='#' onclick='myFunc();'>Alert</a>";
document.body.appendChild(myDiv);

unsafeWindow.myDiv = function() {
   myGlobalVar = "Hello world!";
   alert(myGlobalVar);
};

Моя цель состояла в том, чтобы добавить функции javascript (которые определены в моем скрипте) к onClick событиям некоторых частей веб-страницы. Поэтому приведенный выше код работает для Firefox.

...