我想通过我的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
顺便说一句,我最后想说的是,实际上我并没有尝试定义全局变量,而是尝试定义全局函数。在我的例子中,我使用变量只是为了理解它。
提前致谢。
答案 0 :(得分:0)
解决。 如果有人遇到这个愚蠢的问题,我会在这里发布我的解决方案。
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。