Javascript 不安全窗口不再工作–我该怎么办?

Javascript 不安全窗口不再工作–我该怎么办?,javascript,jquery,greasemonkey,Javascript,Jquery,Greasemonkey,我正在运行两个自编的Greasemonkey用户脚本,它们几乎总是以某种方式需要unsafeWindow函数。不幸的是,该功能大部分已经停止,但现在我在修复脚本时遇到了问题。我已经读到有三个新函数cloneInto、exportFunction和createObjectIn,但我公开承认我没有得到想要我做的事情 有谁能给我一个快速的解释,我应该使用这三个功能中的哪一个,当然还有如何将它们转换为再次工作?对不起,我不太擅长这种东西 举个简单的例子: $("#someid").append('<

我正在运行两个自编的Greasemonkey用户脚本,它们几乎总是以某种方式需要unsafeWindow函数。不幸的是,该功能大部分已经停止,但现在我在修复脚本时遇到了问题。我已经读到有三个新函数cloneInto、exportFunction和createObjectIn,但我公开承认我没有得到想要我做的事情

有谁能给我一个快速的解释,我应该使用这三个功能中的哪一个,当然还有如何将它们转换为再次工作?对不起,我不太擅长这种东西

举个简单的例子:

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

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

Greasemonkey 2.0彻底改变了不安全的窗口处理。现在你应该使用

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


参见MDN中的。您可能还对和感兴趣。

我说过我知道这三种功能。我不知道的是如何正确使用它们。另外,在您提供的代码中,我再也看不到somefunction的名称了。@user3216060我忘记了那个部分,修复了。你到底不明白什么?嗯,我似乎还是得到了ReferenceError:somefunction没有定义。我尝试了两种方法。就像Firefox/Greasemonkey完全忽略了这个函数的存在。你知道怎么回事吗?@user3216060你在你的GM脚本或目标页面中发现了这个错误吗?如何尝试使用somefunction?你确定你在导出后试图使用它吗?这个副本和我的问题几乎没有关系。或者我找不到任何联系。我认为这确实与你的问题有关。。。
exportFunction(function() {
    alert("Hello!");
}, unsafeWindow, {defineAs: "somefunction"});