![](/img/trans.png)
[英]Object.defineProperty() works during testing (jpm run), but doesn't do anything when using the actual xpi
[英]Firefox add-on works with “jpm run”, but not whith .xpi file generated with “jpm xpi”
我正在使用Firefox插件SDK开发Firefox插件。 我遵循了入门教程 。
Firefox版本:41.0.2
我的过程是:
jpm run
>确定附加组件工作正常 jpm xpi
xpi- >确定:创建@ myAddon.xpi (JPM [info]已在...成功创建.xpi ) 因此,为什么使用jpm run
的测试jpm run
正常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任何想法
如您所确定,如果您希望Firefox附加SDK附加组件在“ 私有浏览”模式下工作,则需要在package.json文件中添加值为true
private-browsing
密钥。
如果您没有使用其他权限 ,则可以在package.json文件中添加以下内容:
"permissions": {"private-browsing": true}
Firefox文档中有关为私人浏览模式编写SDK附加组件的文档特别指出,当以下任一情况出现时, require("sdk/private-browsing").isPrivate()
方法将返回true(强调我的意思):
- 私人窗户,或
- 属于私有窗口的标签,或者
- 与私有窗口中托管的文档相关联的工作人员
- 如果已将浏览器配置为从不记住历史记录,则为任何窗口,选项卡或工作程序(选项->隐私->历史记录)
如果您没有"private-browsing": true
,则如文档所述 ,将是以下情况(强调我的意思):
最终的结果是,当您正在使用的配置文件配置为在package.json中没有"private-browsing": true
权限的情况下永远无法记住历史记录时,您的加载项将无法正常工作。
如果确实将该权限放入package.json文件,则必须使用私有浏览模块require("sdk/private-browsing").isPrivate(object)
来检查是否位于私有窗口或选项卡中。 如果您在这样的窗口或选项卡中,则无需存储有关此类环境的任何信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.