问题标签 [firefox-addon-restartless]

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 回答
114 浏览

javascript - Bootstrap 插件:如何在关机时进行适当的清理?

我对此并不陌生,对垃圾收集对无重启插件的确切工作方式有点不知所措。

从我的关闭函数中,我目前调用我必须进行清理的所有对象。他们将任何事件处理程序删除到他们可能设置的外部代码,然后删除自己的所有属性。

然后我要求delete namespace.ObjectA那里的所有物品。命名空间本身是我在 bootstrap.js 中创建的一个变量。我想知道这是否有必要,或者在调用我的插件的关闭函数后,firefox 会从 bootstrap.js 中删除所有全局变量,因此从我的插件外部无法访问的所有其他对象?

显然,如果关闭的原因是 Firefox 应用程序关闭,我不会进行任何清理。

我是否错过了清理时应该做的任何事情?

0 投票
1 回答
75 浏览

javascript - gInitialPages 未定义引导扩展

我正在开发覆盖新标签页的 Firefox 扩展,我需要从地址栏中隐藏我的页面 URL。我使用这段代码:

它在 XUL Overlay 代码中正常工作,但是当我尝试使我的应用程序无重启并将此代码移动到 bootstrap.js 时出现错误:

gInitialPages 未定义

那么,我如何gInitialPages在引导扩展中使用(或类似的东西)?

0 投票
2 回答
231 浏览

javascript - 转换为自举:通知未定义

我编写了一个 Firefox 附加组件,它可以很好地作为叠加层,但现在我将其转换为 boostrapped(无重启)。它注册一个选项卡侦听器,然后在关闭选项卡时在某些情况下打开 HTML5 通知。

附加调试器告诉我 Notification 类未定义:

ReferenceError:未定义通知

根据 Mozilla 文档,不需要包含特殊的 JSM 即可使用通知。知道问题是什么,更重要的是,如何解决它?

0 投票
2 回答
445 浏览

javascript - 在 Firefox 无需重启的附加组件中,如何在新窗口打开时运行代码(监听打开的窗口)?

我开始构建一个无需重启的 Firefox 插件,但在设置 bootstrap.js 时遇到了问题。每个人似乎都同意 bootstrap.js 的核心几乎是样板代码,大致如下:

此代码有效,我可以控制现有窗口中的内容。例如,domWindow.alert("text")在当前打开的每个窗口上成功创建一个标准警报,显示“文本”。

但是,我找不到任何可以让我在新窗口中执行操作的代码;即脚本运行后创建的那些。处理新窗口的创建并获得对它们的控制的正确方法是什么,以至于我可以在创建新窗口时获得另一个“文本”警报?

编辑:使用 nsWindowMediator 类和来自 MDN 的代码示例,我现在有了这个:

但是,onOpenWindow 调用仍然没有输出——“文本”警报没有出现,catch 块中的错误警报也没有出现。我可以确认实际上正在输入 onOpenWindow;如果我Services.prompt.alert()在 onOpenWindow 的开头加上 a,我会在创建新窗口时收到警报。不幸的是,我收到了无限循环的警报,我不知道为什么。

0 投票
1 回答
132 浏览

javascript - Firefox for Android Extension:如何在每次页面加载时触发事件?

我正在尝试为 Android 编写一个 Firefox 扩展,每次网页更改时都会触发一个事件。它正在监视正在加载哪些 URL(所有 URL)以及已加载页面的内容(通过 DOM 检查)。我的问题是使用下面代码的窗口加载事件仅在打开选项卡时加载,如果您离开页面,则不会触发任何事件。

如何挂钩任何 URL 的每个页面加载事件?

这段代码就是 bootstrap.js 的全部内容:

我并不担心上面的代码只适用于新标签而不存在(我故意保持简单),只是当我离开最初的新标签页时,我没有机会挂钩到其他页面。

0 投票
1 回答
80 浏览

javascript - 初始选项卡不会触发打开的就绪事件

我正在构建一个 SDK Firefox 插件,它应该读取标签的 URL 并解析它。为此,我正在听'ready'活动lib/main.js

Mozilla 的文档中所述。

使用 调试时cfx run,这似乎适用于新选项卡。已在上打开的选项卡cfx run不会触发和事件。openready

这是什么原因以及如何解决?

0 投票
1 回答
1340 浏览

javascript - 拦截下载链接点击并阻止默认下载对话框

我们已经为 Windows 构建了一个下载管理器桌面应用程序。现在我们要添加一个拦截下载链接并将它们添加到应用程序的功能。我们认为我们应该为从 Firefox 开始的每个浏览器编写一个插件。

  1. 要拦截下载管理器的下载链接,编写插件是最佳选择吗?
  2. 我们怎么能做到这一点?

到目前为止我们尝试过的事情:
- 使用Downloads.jsm观察新的下载,然后取消它们 => 我们不希望用户与 Firefox 的下载对话框交互
https://stackoverflow.com/a/24466197/2550529
-向每个选项卡添加点击事件侦听器并查找链接 => 下载链接无法区分。
https://stackoverflow.com/a/10345358/2550529
获取链接后,它只是使用nsIProcess传递给我们的应用程序。

一句话:我们希望它表现得像 IDM 的新下载对话框。

0 投票
3 回答
486 浏览

firefox-addon - 简单存储不会在会话之间保留数据

我正在尝试使用我的扩展中最简单的存储,但我无法在浏览器会话之间检索值。事情是这样的:从我的主要代码中,我以这种方式创建了一个值:

没关系,我可以通过日志看到对象。但随后我关闭了浏览器,注释了“foo 定义”(第 2 行),控制台日志为“ undefined”。

我知道 cfx run 默认情况下每次运行时都会使用新的配置文件,因此简单的存储不会从一次运行持续到下一次。但我正在使用

所以我确定我每次都使用相同的配置文件。

会发生什么?我错过了什么?欢迎任何想法!提前致谢!

感谢Notidart的回答,我发现问题是当您以正确的方式关闭Firefox时文件被保存。当您只是通过控制台杀死它时,它不会持久化数据。

0 投票
1 回答
1465 浏览

firefox-addon - 在 Firefox 的扩展文件夹中下载并保存文件?

我想从我的 Firefox 插件中执行以下操作:

一个)。确定我的插件文件夹位置。

乙)。提示用户开始下载。

C)。下载并保存下载

所有可用的代码示例都适用于较旧的 API,我不知道如何让它们为最近的E10(多进程)代码更改工作。

0 投票
1 回答
85 浏览

javascript - Firefox 插件无法转换为引导程序

下面我有预期工作的xul 插件的代码。

即在浏览器启动时显示用户名和密码输入,每当主题为 http-on-examine-response 时,它​​都会验证并写入指定文件。

但是当我尝试将其转换为引导扩展时,它甚至不会在浏览器启动时显示用户名密码输入,并且当我编译和运行时控制台中也没有显示任何内容。

将组件更改为 Cu/Cc/etc 后,我无法弄清楚错误的事情。我提到了下面的链接

https://developer.mozilla.org/en/Add-ons/Bootstrapped_extensions

MDN 文档中关于找出 XUL 元素的段落是什么意思:“如何将覆盖扩展转换为无重启”

https://github.com/Noitidart/l10n/tree/xhtml-xul

下面是我的代码: