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

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

testPreload.js:
console.log('testPreload');

我在日志中看到“正在启动加载项”,如果我使用contentScript:"console.log('testPreload')"而不是contentScriptFile,我还会看到“testPreload”。

但是,当我使用contentScriptFile时,我看到的是“starting addon”,而不是“testPreload”。我究竟做错了什么?

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

最佳答案

您想将testPreload.js文件移动到data目录中。 self.data模块实际上是在引用该目录,因此self.data.url()函数为您提供了该目录中文件的有效URL。仅供引用,这些网址通常看起来像resource://[your-jetpack-id]/data/[file])
再次,只需将您的:lib/testPreload.js移到data/testPreload.js,这应该可以解决问题。

10-08 16:48