【发布时间】:2015-10-30 22:51:30
【问题描述】:
我正在尝试创建使用外部 JS 文件的简单 Mozilla 插件;
文件夹和文件
/var/www/html/add-ons/hello
/var/www/html/add-ons/hello/index.js
/var/www/html/add-ons/hello/package.json
/var/www/html/add-ons/hello/script/data/test.js
/var/www/html/add-ons/hello/index.js
// Import the page-mod API
var pageMod = require("sdk/page-mod");
// Create a page-mod
pageMod.PageMod({
include : "*",
contentScriptFile : "./test.js",
contentScript: 'window.alert("loaded");'
});
/var/www/html/add-ons/hello/package.json
{
"title": "My Jetpack Addon",
"name": "test",
"version": "0.0.1",
"description": "A basic add-on",
"main": "index.js",
"author": "",
"engines": {
"firefox": ">=38.0a1",
"fennec": ">=38.0a1"
},
"license": "MIT",
"keywords": [
"jetpack"
]
}
/var/www/html/add-ons/hello/script/data/test.js
alert("Hello World");
我运行测试的命令
cd /var/www/html/add-ons/hello
jpm init(实际上是这个命令创建的package.json文件)
jpm run -b /usr/bin/firefox(我用的是 Ubuntu,所以我是这样运行的)
我对其进行了现场测试,我收到了loaded 警报,但是我收到了以下错误;
console.error: script:
Error opening input stream (invalid filename?): resource://script/data/test.js
文件夹和文件已经存在于根文件夹中。
如果这是根;
/var/www/html/add-ons/hello 不应该 resource://script/data/test.js 指的是 /var/www/html/add-ons/hello/script/data/test.js?
我哪里做错了?
【问题讨论】:
-
你从哪里运行 jpm run?它必须来自“/var/www/html/add-ons/hello”文件夹?
-
同时转储插件根文件夹的整个文件夹结构
-
@Nandu 感谢您的回复。是的,我确实在
/var/www/html/add-ons/hello上运行 JPM,也许更好的问题是这个resource://指的是哪里? -
您的文件夹结构错误。请参阅答案以获取工作示例