Firefox附加组件:cfx run运行良好,cfx xpi可以工作,但附加组件什么都不做

时间:2015-02-25 18:55:10

标签: javascript firefox-addon

我一直在开发一个Firefox扩展程序(基本上只是一个"内容脚本"或者#34;页面模式",无论哪个术语适合你),它完全按预期工作我使用" cfx run"但是当我做" cfx xpi"并安装它,没有任何反应。在cfx run中,我的内容脚本运行正常,命令提示符没有错误。如果这是任何帮助,我退出测试运行时会看到错误:

###!!! [Child][DispatchAsyncMessage] Error: (msgtype=0xAA0001,name=PTexture::Msg
___delete__) Route error: message sent to unknown actor ID

但是这看起来与JavaScript错误不同(而且看起来更多"内部"对我而言,关于SDK的错误可能是什么?)。无论如何,当我做cfx xpi(有或没有" - 没有 -strip-XPI"选项)所有似乎工作正常。没有来自控制台的错误,安装似乎可以正常工作),但是当我进入页面我编写脚本时,没有任何反应。页面按常规加载,但内容脚本不做任何事情;没有对页面进行任何更改,没有错误,实际上只是没有暗示函数正在发生什么。

当然,我花了一些时间在谷歌和这个网站上。我发现了几个略有相似但无关或无法回答的问题。以下是其中一些: creating xpi does not work(这个是mac与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 run。所以不幸的是,我能真正告诉你的是,某些地方的东西在某种程度上阻塞,压倒或以其他方式阻止XPI做它的事情(神秘?当然。令人沮丧?你不知道......)。 :))))

对不起,我不知道还能说些什么,哈哈。我知道JavaScript(和其他一些语言),但这是我第一次尝试使用SDK(这似乎比它的价值更麻烦)。 Gosh我希望他们能够更新GreaseMonkey编译器,或者至少带回Add-On Builder ...哦,废话我是否大声说出来? :)

尽管如此,所有可能的解决方案,解决方法或其他见解都将受到高度赞赏。感谢。

1 个答案:

答案 0 :(得分:0)

您是否在Firefox设置中使用隐私浏览? 如果是,那么你需要添加

"permissions": {"private-browsing": true}

到package.json文件。

更多信息: https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/private-browsing#Opting_into_private_browsing