我正在使用 trigger.io 的开源浏览器扩展构建一个扩展 framework called forge .您可以查看 documentation here .文档非常好,除了 Firefox 之外,一切似乎都运行良好:我似乎无法让 background.js
脚本按照它应该的方式运行(就像它它在 Chrome 中的行为方式)
新创建的 forge 项目包括一个 src
目录,该目录又包含一个 config.json
,它旨在模仿 Chrome 的 list v2。在那里,可以包括 background scripts和 content scripts (实际上称为“激活”)。
我推测 Firefox 构建器使用了这个 addon-sdk (喷气背包?)。与 IE 和 Chrome 不同,Firefox 生成器抛弃了 background.js 页面,并且似乎根本不使用 forge.html
页面,即使它存在于扩展代码中。
放在 config.json
中的 background.js
中的 alert()
似乎不起作用。
为什么后台脚本会被忽略?如何创建与 Jetpack 一起使用的后台脚本,以便我可以访问 Forge 的 API 以设置 messaging等等?
这里要包含的文件太多,所以我有 uploaded带有 .xpi 文件的开发文件夹。
最佳答案
快速调查显示以下内容
Firefox 上的 Forge 后台脚本实现为 PageWorker脚本。 PageWorker 脚本在隐藏页面上运行。此细节的结果是
alert()
失败。alert
调用失败并显示一条错误消息(对于初学者来说相当神秘)此时您可能想要检查浏览器控制台。如果您没有看到一条提示无法在隐藏窗口上调用 openModalWindow 的消息,您可能没有 set the logging level .
因此,您的后台脚本运行得很好。这个框架没有兑现其跨浏览器的 promise 。
关于javascript - 如何在 Firefox 中访问 Jetpack 内置扩展的后台页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22431193/