我正在使用Firefox Add-on SDK开发Firefox附加组件。 我已经关注了Getting Started tutorial。
Firefox版本:41.0.2
我的流程是:
jpm run
- >好的,加载项工作正常jpm xpi
- >确定:创建 @ myAddon.xpi (JPM [info]在...成功创建 .xpi )那么,为什么jpm run
的测试没问题,但是在安装.xpi
文件之后不起作用???
我可以与您分享代码,但这种情况怎么会发生?如果它在测试中有效,我希望它在“发布”中起作用。 我没有得到任何错误或警告。
高级别:
pageMod.PageMod({
include: "*",
contentScriptFile: [data.url("jquery-1.11.3.min.js"), data.url("./Compute.js")],
onAttach: function (worker) {
var currentUrl = tabs.activeTab.url;
param = currentUrl;
Request({
url: param,
onComplete: function (response) {
var parsed = JSON.parse(response.text);
worker.port.emit('got-request', parsed);
}
}).get();
}
self.port.on('got-request', function (data) {
console.log(data);
});
编辑(从评论中移出):
我找到了一些有趣的东西......根据FireFox的隐私级别,插件可以工作与否。 (选项 - >隐私 - >历史“记住历史”或“永远不记得历史”) - 记住历史“ - > addOn确定 - ”永远不要记住历史“ - > addOn NOK任何想法为什么
答案 0 :(得分:0)
如您所知,如果您希望自己的Firefox附加SDK加载项能够在Private Browsing mode中使用,则需要添加值为private-browsing
的密钥true
您的package.json文件。
如果您不使用其他permissions,则可以在 package.json 文件中添加一行,如下所示:
"permissions": {"private-browsing": true}
Firefox documentation on writing SDK add-ons for private browsing模式明确指出require("sdk/private-browsing").isPrivate()
方法在以下任何一种情况下都会返回true(强调我的):
- 私人窗口,或
- 属于私人窗口的标签,或
- 与私人窗口中托管的文档相关联的工作人员
如果浏览器已配置为永不记住历史记录,则- 任何窗口,标签或工作人员(选项 - >隐私 - >历史记录)
如果您没有"private-browsing": true
,那么,作为documentation states,以下情况就是这样(强调我的):
如果您使用的配置文件在 package.json "private-browsing": true权限的情况下配置为永远不会记住历史记录,那么您的加载项似乎无效>
如果您确实将该权限放在 package.json 文件中,则必须使用私人浏览模块require("sdk/private-browsing").isPrivate(object)
来检查是否在私有窗口或选项卡中。如果您在这样的窗口或标签中,则无需存储有关此类环境的任何信息。