我是插件开发的新手。 Here是我尝试转换为firefox-addon的简单用户脚本。这只是我要使用的一个简单的私人插件,而不是AMO或其他东西。我首先将其转换为插件的原因是Firefox for Android还不支持greasemonkey
扩展程序。
所以,我提到了Wladimir Palant的答案here,并通过引用mozilla文档来构建我的插件。这是我使用jpm init
创建的文件夹结构:
--data>
- redditplus.js //my userscript file.
--index.js //main entry point
--package.json
--README.md
以下是主要入口点index.js
的内容:
var data = require("self").data;
var pageMod = require("page-mod");
pageMod.PageMod({
include: "*.reddit.com/*",
contentScriptFile: data.url("redditplus.js"),
contentScriptWhen: 'start'
});
然后我就像这样建立我的插件:
jpm xpi
但是当我在firefox中安装已编译的@redditplus-0.0.1.xpi
插件时,它不起作用!用户脚本应该突出显示任何未读的reddit注释,或者至少将一些日志写入控制台,但它什么都不做。我在这里缺少什么?
答案 0 :(得分:1)
用户脚本具有以下条款:
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
这意味着它需要jquery才能工作。
您需要在插件中包含相应的jquery文件并将其传递给它:
contentScriptFile: [data.url("jquery.js"), data.url("redditplus.js")]
用户脚本应该突出显示任何未读的reddit注释,或者至少将一些日志写入控制台
要从SDK插件获取日志消息,您需要在 about:config
中设置以下内容extensions.sdk.console.logLevel = info
打开浏览器控制台(ctrl + shift + j),而不是标签的devtools控制台。
另一件事:由于使用@run-at document-end
的用户脚本的默认值为contentScriptWhen: 'start'
,可能会破坏脚本。