为什么ContentScriptFile不能在PageMod中运行?

Suh*_*han 7 firefox firefox-addon firefox-addon-sdk

我尝试在页面上注入内容脚本并使用

console.log("starting addon");
pageMod.PageMod({
    include: "*",//tempopary
    contentScriptFile: self.data.url("testPreload.js"),
    contentScriptWhen: 'start'});
Run Code Online (Sandbox Code Playgroud)

testPreload.js:

console.log('testPreload');
Run Code Online (Sandbox Code Playgroud)

我在日志中看到"启动插件",如果我使用contentScript:"console.log('testPreload')"而不是contentScriptFile我也看到"testPreload".

但是当我使用时,contentScriptFile我会看到"启动插件"而不是"testPreload".我究竟做错了什么?

编辑 错误:Error opening input stream (invalid filename?) filePath资源://jid1-ktaxagdysynpew-at-jetpack/extension/data/testPreload.js

Bry*_*ark 4

您想将testPreload.js文件移动到该data目录中。该self.data模块实际上引用该目录,因此该self.data.url()函数为您提供该目录中文件的有效 URL。仅供参考,这些网址往往看起来像resource://[your-jetpack-id]/data/[file])

再次,只需将您的:移至lib/testPreload.js即可data/testPreload.js解决问题。