首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用户脚本转换为Firefox-addon不在浏览器中运行。

用户脚本转换为Firefox-addon不在浏览器中运行。
EN

Stack Overflow用户
提问于 2015-11-28 13:24:59
回答 1查看 160关注 0票数 0

我刚开始做广告开发。这里是一个简单的用户脚本,我正试图将它转换为firefox。这只是我要用的一个简单的私人评论,而不是AMO之类的。我之所以首先将其转换为一个插件,是因为Firefox还不支持greasemonkey扩展。

所以,我提到了这里的回答,然后引用了mozilla的文档来构建我的评论。下面是我使用jpm init创建的文件夹结构

代码语言:javascript
复制
--data>
    - redditplus.js //my userscript file. 
--index.js //main entry point
--package.json
--README.md

以下是index.js的内容,主要入口点:

代码语言:javascript
复制
var data = require("self").data;
var pageMod = require("page-mod");

pageMod.PageMod({
  include: "*.reddit.com/*",
  contentScriptFile: data.url("redditplus.js"),
  contentScriptWhen: 'start'
});

然后我开始用这样的方式来构建我的评论:

代码语言:javascript
复制
jpm xpi

但是,当我在火狐中安装编译好的@redditplus-0.0.1.xpi插件时,它不起作用了!userscript应该突出显示任何未读的reddit注释,或者至少写一些日志到控制台,但是它什么也不做。我在这里错过了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-29 02:11:38

userscript具有以下子句:

代码语言:javascript
复制
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js

这意味着它需要jquery才能工作。

您需要在您的插件中包含适当的jquery文件,并按如下方式传递:

代码语言:javascript
复制
contentScriptFile: [data.url("jquery.js"), data.url("redditplus.js")]

用户脚本应该突出显示任何未读的reddit注释,或者至少编写一些日志到控制台。

要从SDK插件获取日志消息,您需要在约:config中设置以下内容

代码语言:javascript
复制
extensions.sdk.console.logLevel = info

并打开浏览器控制台(ctrl+shift+j),而不是选项卡的devtools控制台。

另一件事是:因为默认的用户脚本是@run-at document-end,所以使用contentScriptWhen: 'start'可能会破坏脚本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33971830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档