问题标签 [firefox-addon-sdk]
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.
firefox - 如何快速编写一个firefox扩展?
我要做一个firefox扩展,它将注入一些js代码以及整个jQuery lib。当用户按下放置在浏览器某处的按钮时,我希望它发生(注入)。我已经阅读了 MDC 文档和其他关于制作扩展的教程,它们对我来说似乎很复杂。XPCOM或XUL之类的技术对我来说完全没用(实际上我没有时间学习它们)。我的问题是,这是解决我的问题的另一种方法,然后是遵循 MDC 吗?我需要找到更快的方法来完成我的任务。我已经为 Google Chrome 编写了扩展程序,这比为 Firefox 编写更简单。
javascript - Firefox JavaScript chrome 代码中的弱引用
假设我正在A
我的基于 Jetpack 的库中编写一个类(即我们正在谈论 chrome/extension 代码):
用户创建一个类的实例A
:
现在假设我想跟踪A
创建的所有实例,我可以这样做:
并添加listA.push(this);
的构造函数A
,最终得到:
一切都很好,直到用户a
放弃其参考(例如a
超出范围)。我现在有一个问题:listA
仍然包含对它的引用,a
因此它永远不会被垃圾收集。此外,我无法过滤掉原本无法访问的listA
实例。A
我正在有效地泄漏内存。
我需要的是推送到listA
弱引用而不是常规引用。我认为有可能以某种方式做到这一点,但我真的不知道从这里去哪里。我可以设想这样的事情:
但是我不知道,例如,如何测试弱引用是否仍然有效。或者如何有效地过滤掉listA
. 有什么建议么?
firefox-addon-sdk - Jetpack 是否仍可与 Thunderbird 一起使用?如果是这样,一个简单的例子在哪里?
据我所知,Jetpack的早期版本支持为 Firefox和Thunderbird 开发插件,但目前的网站只提到 Firefox 4。
他们是否放弃了对 Thunderbird 的支持?
如果没有,有人可以指点我一个 hello world 风格的例子吗?谷歌没有帮助。:/
firefox-addon - 如何在 Jetpack 中的插件进程和面板页面之间进行通信
将变量发送到面板的最佳方式是什么?人们使用 mustache.js 吗?现在我可以加载一个 HTML 文件,但是一旦我调用 panel.show() 就无法与之通信
javascript - 如何将 ContentScript 数据传递给 JavaScript 中的模块全局变量?
我一直在做一个 Firefox 扩展项目,现在我被困在这个问题上,
其中 abc 是全局变量,newabc 是 contentScript 中的变量。
如何制作 abc = newabc ?
谢谢!!
javascript - Javascript 框架 (RightJS) 作为页面模块中的内容脚本
我是jetpack世界的新手(以及firefox扩展),在对jetpack的可能性进行一些研究时,我发现了一些奇怪的东西。我做了一个简单的测试项目,在 pagemod 中包含了一个 javascript 框架(RightJS)(本教程使用了 jQuery,这似乎工作正常),我得到了以下错误:
错误:发生异常。
回溯(最近一次通话最后):文件“/home/nic/Aptgeek/TestProjects”
中的文件“/home/nic/Aptgeek/TestProjects/ff-extension/data/external/libs/right-src.js”,第 5979 行
/ff-extension/data/external/libs/right-src.js",第 990 行,
类型错误:Array.include 不是函数
我的 main.js 脚本相当简单:
看到那个讨论后: http ://groups.google.com/group/mozilla-labs-jetpack/browse_thread/thr ...,我开始怀疑jetpack javascript框架支持。我是否错误地使用了 page-mod?还是应该这样工作?在 page-mod 中使用 javascript 框架作为内容脚本是否有任何限制?
firefox-addon - 设置 Mozilla JetPack “系统无法找到指定的注册表项或值”
我收到以下错误...
怎么了?我该如何解决?
firefox-addon - Mozilla“Jetpack”附加组件:将面板锚定到小部件
我正在制作一个 Jetpack 扩展,其中一个小部件会打开一个面板。单击小部件会按预期打开面板(锚定在小部件的右下角)。但是,如果我从我的代码中调用 widget.panel.show(),面板会打开,与小部件分离,位于屏幕中心,漂浮在空间中。
简而言之,我该如何解决这个问题?
我可以模拟小部件上的点击事件(以某种方式)而不是调用widget.panel.show()吗?
我可以强制面板锚定到小部件吗?
这个问题有一个在以前的 Jetpack API 中有效的解决方案,但我无法转换到新界面: Using Positioning 'Panel' in new Jetpack API
firefox - Firefox:如何使用附加 SDK (Jetpack) 添加/修改工具栏
因此,我现在已经多次查看 Add-on SDK 的文档,但我在哪里看不到如何创建工具栏或修改现有工具栏。他们有一个关于创建附加栏图标的教程,但这不是我想要的。附加 SDK 是否支持此功能?如果是这样,有人可以将我链接到示例/教程。
firefox - 使用 Add-on SDK 开发我的 Firefox 扩展有哪些优点/缺点?
我正在为 Firefox 开发(又一个)密码管理器插件。我的附加组件需要:
- 向每个密码字段添加两个上下文菜单项。
- 选择菜单项时打开对话框或浮动面板。
- 访问特定 XPCOM 组件的特定方法。
- 填写密码字段。
- 包括一个首选项窗口。
- 与 Firefox 4.0 兼容。
优选地,还:
- 在 Firefox 3.5 和 3.6 上运行。
- 一些用户不会更新到最新版本。
- Firefox 4.0 不能在 PowerPC Mac 上运行。
- 在 Firefox 4.0 上无需重新启动即可安装。
- 允许本地化。
我已经尝试过 Add-on SDK(以前称为 Jetpack),它使开始开发变得非常容易。但是,我发现 HTML 无法轻松创建“本地外观”对话框,而且 SDK 相当重量级。(构建一个简单的扩展需要很多千字节;其中包括一个 XPCOM 组件!)
使用 Add-on SDK 开发我的 Firefox 扩展有哪些优点和缺点?它准备好进行“严肃的”扩展开发了吗?