我一直在开发Firefox扩展(基本上只是一个“内容脚本”或“页面模式”,无论哪个术语适用于您),在我使用"cfx run“时,它的工作原理与预期完全相同,但是当我执行"cfx xpi”并安装它时,什么都不会发生。在cfx运行中,我的内容脚本工作得很好,没有命令提示符中的错误。如果这是帮助,则退出测试运行时确实会看到一个错误:
###!!! [Child][DispatchAsyncMessage] Error: (msgtype=0xAA0001,name=PTexture::Msg
___delete__) Route error: message sent to unknown actor ID但这看起来与JavaScript错误不同(在我看来,它确实更“内部”,也许是关于SDK的一些错误?)。无论如何,当我做cfx xpi时(不管有没有“-无条形-xpi”选项),一切似乎都很好。没有来自控制台的错误,安装似乎是可行的),但是当我进入我正在编写脚本的页面时,什么也不会发生。页面像往常一样加载,但是内容脚本什么也不做;页面没有变化,没有错误,只是对函数的运行没有任何提示。
所以,我当然花了一些时间在谷歌和这个网站上。我发现了几个类似的问题,但要么是无关的,要么是没有答案的。这里有几个例子:creating xpi does not work (这个是Macvs.Windows的问题) Create XPI package with the Add-on SDK? (这个有点接近,但我没有在main.js中使用contentScript,也没有像这个家伙建议的那样使用PageMod对象) Firefox SDK Sample Add On Exported XPI Action Button Doesn't Show Up (我的控制台没有显示任何错误,所以这个也没有帮助)。
当然,我尝试了所有显而易见的东西(重新启动Firefox,重新启动计算机,更改脚本的内容等等)。结果仍然是一样的:在cfx中运行、编译和安装很好,但是在cfx xpi之后什么也不做。
另外,如果这对你们有帮助的话,这里是我的main.js:
var data = require("sdk/self").data;
var pageMod = require("sdk/page-mod");
pageMod.PageMod({
include: "*.somepage.com",
// NOTE TO SELF: include all object files here.
contentScriptFile: [data.url("Data.js"), data.url("Layout.js"), data.url("HTML.js"), data.url("Restyler.js"), data.url("Shortcut.js"), data.url("ARIA.js"), data.url("Apricot.js")]
});这与我在文档和教程中所读到的所有内容密切相关,但无论出于什么原因,它只能在cfx运行中工作。因此,不幸的是,我能确定的是,有什么东西在某种程度上阻塞、覆盖或以其他方式阻止XPI做它的事情(神秘吗?好的。令人沮丧?你不知道.)。()
对不起,我不知道还能说什么,亲爱的。我知道JavaScript (和其他一些语言),但这是我第一次尝试使用SDK (这似乎比它更麻烦)。天哪,我希望他们能更新GreaseMonkey编译器,或者至少把附加的生成器带回来.哦,糟糕,我大声说出来了吗?)
所有开玩笑,不过,任何潜在的解决方案,解决办法或其他见解,将不胜感激。谢谢。
发布于 2015-04-05 23:02:36
您在Firefox安装程序中使用的是私人浏览吗?如果是这样,那么您需要添加
"permissions": {"private-browsing": true}到package.json文件。
更多信息:browsing
https://stackoverflow.com/questions/28727306
复制相似问题