Javascript 信号机';拒绝许可';在FirefoxSDK插件中

Javascript 信号机';拒绝许可';在FirefoxSDK插件中,javascript,signalr,firefox-addon-sdk,Javascript,Signalr,Firefox Addon Sdk,上下文:我正在尝试制作一个Firefox SDK插件,以便在TFS聊天室收到新消息时显示toast通知。 我正在移植一个在谷歌浏览器上运行的程序 代码提取: index.js var pageMod = require("sdk/page-mod"); pageMod.PageMod({ include: "*.tfsservername", contentScriptFile: [self.data.url("jquery.min.js"), self.data.url("no

上下文:我正在尝试制作一个Firefox SDK插件,以便在TFS聊天室收到新消息时显示toast通知。 我正在移植一个在谷歌浏览器上运行的程序

代码提取:

index.js

var pageMod = require("sdk/page-mod");
pageMod.PageMod({
    include: "*.tfsservername",
    contentScriptFile: [self.data.url("jquery.min.js"), self.data.url("notifications.js")]
});
data/notifications.js

$(function() { 
    // [...] checking notifications permissions here

    // Suscribing to new messages
    unsafeWindow.$.connection.chatHub.on('messageReceived', function() {/*showing notification here*/});
});
问题: (…)上的
$.connection.chatHub.on在文件
tfs/\u static/3rdParty/\u scripts/jquery.signalR-2.2.0.min.js
中引发错误
拒绝访问属性Symbol.toPrimitive


同一行代码(不带
unsafeWindow
)使用javascript控制台执行实际上可以运行,因此我猜测这可能是由于插件代码与页面代码分开执行,但不知道如何解决这个问题,或者这是否是问题的实际根源。

我想您必须将侦听器函数导出到unsafeWindow,以便取消设置窗口以添加该侦听器。但我不确定这就是问题所在。欲了解更多详情,请参阅@humanoid thank you,成功了!如果你想把你的评论变成一个答案,我很乐意接受。我认为你必须将你的侦听器函数导出到unsafeWindow,以便unsafeWindow添加该侦听器。但我不确定这就是问题所在。欲了解更多详情,请参阅@humanoid thank you,成功了!如果你能把你的评论变成一个答案,我很乐意接受。