问题标签 [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.
javascript - 如何在 Firefox 插件中创建“设置”菜单?
我正在使用 jpm/Addon Sdk 创建一个 Firefox 插件。我的基本插件已准备就绪,但我希望有一个“设置”菜单,用户可以在其中选择他们的偏好。
谁能指导我如何去做?
谢谢。
javascript - Javascript Firefox Addon 角落里的新文本窗口
我希望 Javascript 在右上角生成一个新的“区域”。在这个“区域”中,我想要一些文本,也许还有一些 url。
到目前为止我得到了什么:
但是文本字段看起来不像我想要的那样。我遇到的第一个问题是它是透明的,这是不应该的。
我只需要添加更多的 CSS 属性还是使用另一个函数来创建该区域会更好?
我正在使用 SDK/jpm 生成 Firefox 插件。
firefox - 每次构建的 Firefox 插件开发中 xpi 文件大小呈指数增长
我正在学习为 Firefox 开发插件。我观察到的是,即使插件文件更改非常小jpm sign
,验证的大小也会.xpi
比以前的文件大小增加两倍。.xpi
以下说明了该场景:
谁能告诉我这背后的原因是什么?最好知道保留相对文件大小与代码更改量的可能选项。
firefox-addon - Firefox 加载项签名错误
我做了一个简单的附加组件,现在我想对其进行签名,这样它就可以在开发人员模式之外工作。我阅读了 mozilla 网站上的文档,但是当我尝试使用我的 API 密钥和秘密运行 jpm sign 命令时,我收到此错误:
我不知道我做错了什么,作为 API 密钥我输入了 JWT 颁发者:用户:*******:*** 并且作为 API 密码我输入了 JWT 密码:******** *************************************************
所以我的命令如下所示:
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 中
firefox - tabs.open() 函数如何与单独的内容脚本文件一起使用?
我正在创建类似于 chrome 搜索的 Firefox 插件。如何使用带有“url”选项的 browser.tabs.create() 函数?
我读过这篇文章。但是在这里,没有关于如何使用变量 url 创建此选项卡的文档。
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 (浏览器二进制文件的绝对路径)测试结果,每次都会创建一个新的默认空配置文件。
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 行中找到
我将不胜感激任何帮助,谢谢!
javascript - 自动运行 Firefox 扩展 jpm
我需要帮助JPM
。我正在尝试使用JPM
. 我希望我的扩展程序在打开 Firefox 时自动启动,但我无法在上面添加事件onLoad
我知道使用覆盖我可以执行以下操作:
如果我将此事件添加到我的 JPM 扩展中会给我一个错误:
JPM [错误] 消息:ReferenceError:未定义窗口
有可能做到这一点JPM
吗?还是有另一种方法可以将我的 Firefox 扩展启动到开头?
javascript - Os.File.setPermission 未被识别为函数
我有这个(部分)主要 JS 代码:
我在Linux上测试,当执行到上面指出的promise时,报这个错误:
console.log:TypeError:OS.File.setPermission 不是函数
我想这种效果也表明该部分在附加目标 Windows 平台上的执行受到了损害,不是吗?
为什么会这样?我哪里错了?谢谢。