问题标签 [jpm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
106 浏览

javascript - 如何在 Firefox 插件中创建“设置”菜单?

我正在使用 jpm/Addon Sdk 创建一个 Firefox 插件。我的基本插件已准备就绪,但我希望有一个“设置”菜单,用户可以在其中选择他们的偏好。

谁能指导我如何去做?

谢谢。

0 投票
0 回答
18 浏览

javascript - Javascript Firefox Addon 角落里的新文本窗口

我希望 Javascript 在右上角生成一个新的“区域”。在这个“区域”中,我想要一些文本,也许还有一些 url。

到目前为止我得到了什么:

但是文本字段看起来不像我想要的那样。我遇到的第一个问题是它是透明的,这是不应该的。

我只需要添加更多的 CSS 属性还是使用另一个函数来创建该区域会更好?

我正在使用 SDK/jpm 生成 Firefox 插件。

0 投票
1 回答
62 浏览

firefox - 每次构建的 Firefox 插件开发中 xpi 文件大小呈指数增长

我正在学习为 Firefox 开发插件。我观察到的是,即使插件文件更改非常小jpm sign,验证的大小也会.xpi比以前的文件大小增加两倍。.xpi

以下说明了该场景:

谁能告诉我这背后的原因是什么?最好知道保留相对文件大小与代码更改量的可能选项。

0 投票
1 回答
792 浏览

firefox-addon - Firefox 加载项签名错误

我做了一个简单的附加组件,现在我想对其进行签名,这样它就可以在开发人员模式之外工作。我阅读了 mozilla 网站上的文档,但是当我尝试使用我的 API 密钥和秘密运行 jpm sign 命令时,我收到此错误:

我不知道我做错了什么,作为 API 密钥我输入了 JWT 颁发者:用户:*******:*** 并且作为 API 密码我输入了 JWT 密码:******** *************************************************

所以我的命令如下所示:

0 投票
1 回答
396 浏览

javascript - 插件可以很好地使用 jpm run 附加脚本,但不能使用实际的 xpi

我对 addon-sdk 还很陌生,并且遇到了一个对我来说无法解释的问题。到目前为止,我一直在使用 jpm run 来测试一切——一切都很好。现在,我即将完成我想要完成的工作,所以我想在“普通”浏览器中对其进行测试 - 主要是在几天内使用它,看看一切是否按预期工作。

但是,安装过程已经抛出了两条错误消息:

[异常...“组件返回失败代码:0x80004005 (NS_ERROR_FAILURE) [nsIURI.hostPort]”nsresult:“0x80004005 (NS_ERROR_FAILURE)”位置:“JS 框架 :: resource://gre/modules/PopupNotifications.jsm :: PopupNotifications_refreshPanel /< :: line 667" data: no] (未知)

被抛出两次。

好吧,到目前为止,一切都很好(或很糟糕)。我的插件添加的切换按钮仍然显示。单击该按钮会打开一个面板,其中包含一个 html 页面 - 仍在工作。panel.html 包含一个按钮,这是我麻烦的根源。

如果单击,该按钮会向我的主插件文件发送一条消息:

index.js 监听的:

现在 options.html 选项卡被打开(面板消失),但看起来好像没有附加 contentScriptFile。我试图弄清楚代码停止工作的确切位置,但一直没能。'console.log()' 之后

工作正常,但是'console.log()'在

(在 internalOptions.js 中)不会出现在控制台中。

无论如何,浏览器控制台报告:

不推荐在内容过程中使用 nsIFile。NetUtil.jsm:335:12

<不可用> timers.js:43

这些是我不知道该怎么处理的错误,因为所有这些都与“jpm run”一起工作得很好。因此,我将不胜感激任何帮助,因为我完全不知道这里发生了什么。

如果需要,我还可以发布更多代码,但我认为这篇文章已经足够长了。

谢谢!

编辑:我将代码上传到 github。也许这让帮助我更容易。

https://github.com/Azlond/TrackingProtector

上述代码在 data/privacyProtector/js/panel.js、index.js 第 66-91 行和 data/privacyProtector/js/internalOptions.js 中

0 投票
1 回答
115 浏览

firefox - tabs.open() 函数如何与单独的内容脚本文件一起使用?

我正在创建类似于 chrome 搜索的 Firefox 插件。如何使用带有“url”选项的 browser.tabs.create() 函数?

我读过这篇文章。但是在这里,没有关于如何使用变量 url 创建此选项卡的文档。

在此处输入图像描述

0 投票
1 回答
38 浏览

npm - Firefox Addon-SDK jpm menuitem 模块:图像未显示在工具菜单栏上

可能与以下相关但不同:

firefox插件图标不显示firefox扩展不显示图标

虽然这些问题围绕着 API 用户需要使用 self.data.url( './icon-16.png' ) 并将图像从插件的根目录放在 './data/' 目录中,但我已经这样做了,所以它可能是 API 编码器的menuitem模块中的错误(对我来说看起来不错),或者 API 本身,或者其他一些滥用(我或其他人)或冲突。

我已经得到了要显示的 menuitem 文本标签,并且关联的 onCommand 处理程序可以工作。我已经使用 ActionButton 通过 self.data.url() 加载图标,所以我知道可以找到图标。这些相同的图像和功能在 menuitem 模块代码中失败。我尝试在菜单栏的文件和工具菜单下添加项目。我尝试修改 menuitem 模块的 index.js 文件。

在我的插件 index.js 中,我尝试了各种选项:

在 menuitem 的 index.js 中,我尝试过:

根据某些 Mozilla 安全策略,菜单栏的菜单项的图标是否只是被浏览器禁止而控制台中没有警告?是否有浏览器设置或覆盖?它甚至可以与 XUL 叠加层一起使用吗?

我只是尝试直接从各种代码示例中使用 menuitem 插件(修改为删除其他选项)。

使用 jpm run -b (浏览器二进制文件的绝对路径)测试结果,每次都会创建一个新的默认空配置文件。

0 投票
1 回答
94 浏览

javascript - Object.defineProperty() 在测试期间工作(jpm run),但在使用实际 xpi 时不做任何事情

好吧,我又回来了,关于我的插件部分的另一个问题。

我正在使用观察者来修改通过 javascript 调用的值。

我通过观察'document-element-inserted'来做到这一点,这是

在创建文档的根元素之后立即发送,但在对其执行任何脚本之前发送。(来源

调用时,我的插件会修改几个文档/导航器/屏幕值,以通过覆盖 navigator.X 值来减少指纹:

在这种情况下,例如插件列表,使它看起来好像我根本没有安装任何插件。

到目前为止,这在我的开发环境/jpm 运行中运行良好。但是,现在我已经创建了一个实际的 xpi,没有任何反应。代码仍然被调用,我在 jSTracking 函数中使用了几个控制台输出,它们都出现在浏览器控制台中。但是,所谓的更改值仍然是原始值。

使用 jpm run 时只有两个错误没有出现:

[异常...“组件返回失败代码:0x80004005 (NS_ERROR_FAILURE) [nsIURI.hostPort]”nsresult:“0x80004005 (NS_ERROR_FAILURE)”位置:“JS 框架 :: resource://gre/modules/PopupNotifications.jsm :: PopupNotifications_refreshPanel /< :: line 667" data: no] (未知)

在安装过程中被抛出两次。

不推荐在内容过程中使用 nsIFile。内容.js:25:17

不推荐在内容过程中使用 nsIFile。NetUtil.jsm:335:12

是不时出现的另一个,尽管与我的脚本无关。

最让我困惑的事情是:为什么 Object.defineProperty 可以与 jpm run 一起使用,但不能与 xpi 一起使用?我必须进行哪些更改才能使其始终有效?

整个项目可以在我的 Github 存储库中找到。

观察者的注册在 pp.js 的第 452 行,

观察功能在第 436-446 行

jsTracking 函数从第 193 行开始,到第 433 行结束

引用的插件示例可以在第 399-403 行中找到

我将不胜感激任何帮助,谢谢!

0 投票
2 回答
115 浏览

javascript - 自动运行 Firefox 扩展 jpm

我需要帮助JPM。我正在尝试使用JPM. 我希望我的扩展程序在打开 Firefox 时自动启动,但我无法在上面添加事件onLoad我知道使用覆盖我可以执行以下操作:

如果我将此事件添加到我的 JPM 扩展中会给我一个错误:

JPM [错误] 消息:ReferenceError:未定义窗口

有可能做到这一点JPM吗?还是有另一种方法可以将我的 Firefox 扩展启动到开头?

0 投票
0 回答
30 浏览

javascript - Os.File.setPermission 未被识别为函数

我有这个(部分)主要 JS 代码:

我在Linux上测试,当执行到上面指出的promise时,报这个错误:

console.log:TypeError:OS.File.setPermission 不是函数

我想这种效果也表明该部分在附加目标 Windows 平台上的执行受到了损害,不是吗?

为什么会这样?我哪里错了?谢谢。

这里是 setPermission 的参考