问题标签 [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.
javascript - Bootstrap 插件:如何在关机时进行适当的清理?
我对此并不陌生,对垃圾收集对无重启插件的确切工作方式有点不知所措。
从我的关闭函数中,我目前调用我必须进行清理的所有对象。他们将任何事件处理程序删除到他们可能设置的外部代码,然后删除自己的所有属性。
然后我要求delete namespace.ObjectA
那里的所有物品。命名空间本身是我在 bootstrap.js 中创建的一个变量。我想知道这是否有必要,或者在调用我的插件的关闭函数后,firefox 会从 bootstrap.js 中删除所有全局变量,因此从我的插件外部无法访问的所有其他对象?
显然,如果关闭的原因是 Firefox 应用程序关闭,我不会进行任何清理。
我是否错过了清理时应该做的任何事情?
javascript - gInitialPages 未定义引导扩展
我正在开发覆盖新标签页的 Firefox 扩展,我需要从地址栏中隐藏我的页面 URL。我使用这段代码:
它在 XUL Overlay 代码中正常工作,但是当我尝试使我的应用程序无重启并将此代码移动到 bootstrap.js 时出现错误:
gInitialPages 未定义
那么,我如何gInitialPages
在引导扩展中使用(或类似的东西)?
javascript - 转换为自举:通知未定义
我编写了一个 Firefox 附加组件,它可以很好地作为叠加层,但现在我将其转换为 boostrapped(无重启)。它注册一个选项卡侦听器,然后在关闭选项卡时在某些情况下打开 HTML5 通知。
附加调试器告诉我 Notification 类未定义:
ReferenceError:未定义通知
根据 Mozilla 文档,不需要包含特殊的 JSM 即可使用通知。知道问题是什么,更重要的是,如何解决它?
javascript - 在 Firefox 无需重启的附加组件中,如何在新窗口打开时运行代码(监听打开的窗口)?
我开始构建一个无需重启的 Firefox 插件,但在设置 bootstrap.js 时遇到了问题。每个人似乎都同意 bootstrap.js 的核心几乎是样板代码,大致如下:
此代码有效,我可以控制现有窗口中的内容。例如,domWindow.alert("text")
在当前打开的每个窗口上成功创建一个标准警报,显示“文本”。
但是,我找不到任何可以让我在新窗口中执行操作的代码;即脚本运行后创建的那些。处理新窗口的创建并获得对它们的控制的正确方法是什么,以至于我可以在创建新窗口时获得另一个“文本”警报?
编辑:使用 nsWindowMediator 类和来自 MDN 的代码示例,我现在有了这个:
但是,onOpenWindow 调用仍然没有输出——“文本”警报没有出现,catch 块中的错误警报也没有出现。我可以确认实际上正在输入 onOpenWindow;如果我Services.prompt.alert()
在 onOpenWindow 的开头加上 a,我会在创建新窗口时收到警报。不幸的是,我收到了无限循环的警报,我不知道为什么。
javascript - Firefox for Android Extension:如何在每次页面加载时触发事件?
我正在尝试为 Android 编写一个 Firefox 扩展,每次网页更改时都会触发一个事件。它正在监视正在加载哪些 URL(所有 URL)以及已加载页面的内容(通过 DOM 检查)。我的问题是使用下面代码的窗口加载事件仅在打开选项卡时加载,如果您离开页面,则不会触发任何事件。
如何挂钩任何 URL 的每个页面加载事件?
这段代码就是 bootstrap.js 的全部内容:
我并不担心上面的代码只适用于新标签而不存在(我故意保持简单),只是当我离开最初的新标签页时,我没有机会挂钩到其他页面。
javascript - 初始选项卡不会触发打开的就绪事件
我正在构建一个 SDK Firefox 插件,它应该读取标签的 URL 并解析它。为此,我正在听'ready'
活动lib/main.js
,
如Mozilla 的文档中所述。
使用 调试时cfx run
,这似乎适用于新选项卡。已在上打开的选项卡cfx run
不会触发和事件。open
ready
这是什么原因以及如何解决?
javascript - 拦截下载链接点击并阻止默认下载对话框
我们已经为 Windows 构建了一个下载管理器桌面应用程序。现在我们要添加一个拦截下载链接并将它们添加到应用程序的功能。我们认为我们应该为从 Firefox 开始的每个浏览器编写一个插件。
- 要拦截下载管理器的下载链接,编写插件是最佳选择吗?
- 我们怎么能做到这一点?
到目前为止我们尝试过的事情:
- 使用Downloads.jsm观察新的下载,然后取消它们 => 我们不希望用户与 Firefox 的下载对话框交互
https://stackoverflow.com/a/24466197/2550529
-向每个选项卡添加点击事件侦听器并查找链接 => 下载链接无法区分。
https://stackoverflow.com/a/10345358/2550529
获取链接后,它只是使用nsIProcess传递给我们的应用程序。
一句话:我们希望它表现得像 IDM 的新下载对话框。
firefox-addon - 简单存储不会在会话之间保留数据
我正在尝试使用我的扩展中最简单的存储,但我无法在浏览器会话之间检索值。事情是这样的:从我的主要代码中,我以这种方式创建了一个值:
没关系,我可以通过日志看到对象。但随后我关闭了浏览器,注释了“foo 定义”(第 2 行),控制台日志为“ undefined
”。
我知道 cfx run 默认情况下每次运行时都会使用新的配置文件,因此简单的存储不会从一次运行持续到下一次。但我正在使用
所以我确定我每次都使用相同的配置文件。
会发生什么?我错过了什么?欢迎任何想法!提前致谢!
感谢Notidart的回答,我发现问题是当您以正确的方式关闭Firefox时文件被保存。当您只是通过控制台杀死它时,它不会持久化数据。
firefox-addon - 在 Firefox 的扩展文件夹中下载并保存文件?
我想从我的 Firefox 插件中执行以下操作:
一个)。确定我的插件文件夹位置。
乙)。提示用户开始下载。
C)。下载并保存下载
所有可用的代码示例都适用于较旧的 API,我不知道如何让它们为最近的E10(多进程)代码更改工作。
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
下面是我的代码: