不安全的窗户不再起作用 - 我该怎么办?

时间:2014-09-19 21:31:31

标签: javascript jquery greasemonkey

我正在运行一些自编的Greasemonkey用户脚本,几乎总是以某种方式需要 unsafeWindow 功能。不幸的是,该功能大部分已停止使用,但现在我无法修复脚本。我已经读过有三个新函数( cloneInto() exportFunction() createObjectIn()),但我公开承认我得不到this page要我做的事。

有人可以快速解释我应该使用这三个功能中的哪一个,当然还有如何将它们转换为再次工作?对不起,但我对这些东西并不擅长。

举个简单的例子:

$("#someid").append('<a href="#" onclick="somefunction();return false;">Click</a>');

unsafeWindow.somefunction = function() {
    alert("Hello!");
}

1 个答案:

答案 0 :(得分:0)

Greasemonkey 2.0从根本上改变了unsafeWindow处理。现在你应该使用

unsafeWindow.somefunction = exportFunction(function() {
    alert("Hello!");
}, unsafeWindow);

exportFunction(function() {
    alert("Hello!");
}, unsafeWindow, {defineAs: "somefunction"});

请参阅MDN中的exportFunction。您可能还对createObjectIncloneInto感兴趣。