如何更改(usercript)的这个功能,以便它不会导致" unsafeWindow。$不是一个函数"在浏览器控制台中

时间:2015-03-20 09:49:13

标签: javascript greasemonkey

有这个用户名Twitter profile retweets hider (它隐藏在Twitter个人资料上转发)

在greasemonkey(FF36中为3.0)中运行它会导致(在浏览器控制台中):

TypeError: unsafeWindow.$ is not a function                   Twitter_pr:115:2

由于更改to greasemonkey since v2.0引起的,反映了Firefox(自v30以来)附加SDK:

  

Greasemonkey 2.0版于2014年6月17日发布   向后不兼容更改:
   - 为了稳定性,可靠性和安全性,特权沙箱已更新为与新changes to unsafeWindow for the Add-on SDK匹配   要将值写入unsafeWindow,您需要使用新方法 cloneInto()exportFunction()和/或createObjectIn()
  ...   

包含unsafeWindow命令的函数是:

window.setTimeout(function() {
    addMenuItem();
    unsafeWindow.$(document).on("uiPageChanged", function() {
        addMenuItem();
    });
}, 1);

我已经向GitHub的开发者报告了这个问题,我之所以请求你的帮助,是因为他说他不再使用这个用户了,所以,他& #39;要么是拉开请求,要么他会弃用它。

我已经尝试了很多(使用我有限的javascript知识)使用cloneInto()exportFunction()和/或createObjectIn()正确转换前述功能(基于我的第3个链接上的说明/示例), 但没有任何成功。


编辑:根据Brock Adams的评论我到目前为止所做的尝试:

  • unsafeWindow.$(document)...更改为window.$(document)...
    它会导致浏览器控制台中的TypeError: window.$ is not a function
  • unsafeWindow.$(document)...更改为jQuery(document)...
    它会导致ReferenceError: jQuery is not defined

0 个答案:

没有答案