用户脚本已转为Firefox-addon未在浏览器

时间:2015-11-28 13:24:59

标签: javascript node.js firefox firefox-addon firefox-addon-sdk

我是插件开发的新手。 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注释,或者至少将一些日志写入控制台,但它什么都不做。我在这里缺少什么?

1 个答案:

答案 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',可能会破坏脚本。