问题标签 [firefox-addon]

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 投票
3 回答
1019 浏览

javascript - XPCSafeJSObjectWrapper 做什么?

Mozilla Firefox 的 XPCSafeJSObject 包装器实际上做了什么?

MDC的文档如下:

创建此包装器是为了解决 XPCNativeWrapper 的一些问题。特别是,一些扩展希望能够安全地访问非本机实现的内容定义对象(以及访问 XPCNativeWrapper 下的底层 JavaScript 对象而无需其强大的行为保证)。XPCSJOW 充当 chrome 代码之间的缓冲区。

这并没有告诉我很多。特别是,我不知道通过 XPCSafeObject 访问对象与直接访问它们有何不同。

编辑:我知道包装器的一般目的是保护特权代码免受非特权代码的影响。我不明白(并且似乎没有记录)是XPCSafeJSObject 究竟是如何做到这一点的

它只是在访问属性之前放弃特权吗?

0 投票
3 回答
306 浏览

firefox - 保护 FF 扩展中的 Javascript 代码

我希望保护我的 Firefox 扩展程序的代码,因为它有服务器调用,如果有人可以将它们放在扩展程序之外,则不会有安全风险。关于如何加密它的任何建议?

0 投票
2 回答
1892 浏览

firefox - 您如何打包和自托管您的 Firefox 扩展程序?

我正在开发一个特定于站点的 Firefox 扩展。addons.mozilla.org 的官方托管/更新机制强制我的用户登录以下载我的插件(直到它被批准为公共状态),这对我不利,特别是因为我的插件不太可能被认为对整个网络,并将永远卡在沙箱中。

似乎我被迫使用McCoy(一个仅 GUI 的程序)来签署我的一些工件并使用 openssl 创建一个哈希,我在签署之前手动插入到 update.rdf 中。我真的很想拥有一些工具,我可以坚持在我的自动化构建过程中,而不需要我每次手动步骤。是否有一个开源工具可以模仿 addons.mozilla.org 的行为,我可以将其用于自托管?或者我可以在部署之前从我的构建中调用的一组命令行工具(在 OS X 上工作)?

很高兴有你在这个过程中的任何经历......你现在是怎么做的?你试过什么?什么有效,什么无效?

0 投票
6 回答
28746 浏览

javascript - 获取页面上的选定文本和选定节点?

选择一块文本(可能跨越许多DOM节点)时,是否可以使用JavaScript提取所选文本和节点?

想象一下这段 HTML 代码:

如果用户从“World...”开始启动 mouseDown 事件,然后在“there!”之后启动 mouseUp,我希望它会返回:

我尝试将 HTML 放入 textarea 中,但这只会让我获得 selectedText。我没有尝试过该<canvas>元素,但这可能是另一种选择。

如果不是 JavaScript,有没有办法使用 Firefox 扩展来实现?

0 投票
6 回答
48225 浏览

javascript - 检测加载 iframe 内容失败

我可以使用load事件检测 iframe 的内容何时加载。不幸的是,就我的目的而言,这有两个问题:

  • 如果加载页面时出现错误(404/500 等),则永远不会触发 load 事件。
  • 如果某些图像或其他依赖项无法加载,则加载事件将照常触发。

有什么方法可以可靠地确定是否发生了上述任何一个错误?

我正在编写一个基于 Mozilla/XULRunner 的半网页半桌面应用程序,因此欢迎仅在 Mozilla 中工作的解决方案。

0 投票
4 回答
2049 浏览

firefox - 如何使用 XUL/Firefox 扩展执行页面的后台加载和抓取

我想抓取 SO 的用户页面,以向我的工具栏的所有者提供有关他们的问题/答案/等的更新信息......

这意味着我需要在后台执行此操作,解析页面,提取内容,将其与上次运行进行比较,然后将结果显示在工具栏或状态栏上,或者在某些弹出窗口上显示种类。所有这些都必须在用户进行他的业务时完成,而不会被打断甚至是在 SO 上。

我在 Google 和 Mozilla Wiki 上都进行了相当彻底的搜索,以寻找某种提示。我什至已经下载了一些我认为可以做同样的其他扩展。不幸的是,我没有时间浏览所有这些和我看过的那些,都使用数据 API(服务、WebServices、XML),而不是 html 报废。

旧问题文本

我正在寻找一个好地方来学习如何在一个名为购买臭名昭著的 set_timeout() 的函数中加载页面,以在后台处理屏幕抓取。

我的想法是在状态栏扩展中呈现这种抓取的结果,以防万一上次运行发生任何变化。

是否有隐藏的覆盖或其他一些诡计?

0 投票
1 回答
1900 浏览

firefox - 如何在导航栏中自动安装 Firefox 扩展?

我正在开发一个 Firefox 扩展。当用户安装它时,我想让它自动安装在导航栏的最右边位置。就目前而言,用户必须转到查看 > 工具栏 > 自定义...,并在安装后将扩展拖到导航栏。我想消除这一步。

扩展在这里: http: //madan.org/tickertool

我的扩展的 XUL 看起来基本上是这样的,它覆盖了 browser.xul:

我在这里看到了代码(https://developer.mozilla.org/en/Code_snippets/Toolbar),据说可以满足我的要求,但是如果您的扩展程序只是一个按钮而我不能让它为我工作。我的问题的答案可能是对这段代码的一些修改,但我还没有弄清楚。

0 投票
8 回答
24877 浏览

firefox - 页面大小:Firefox 添加

有谁知道任何可以显示当前查看页面大小的 Firefox 插件?

0 投票
5 回答
13772 浏览

sqlite - Firefox 书签 SQLite 结构

我正在尝试编写一个 Firefox 3 插件,它可以让我轻松地重新标记书签。例如,我有一些标记为“开发”的书签和一些标记为“开发”的书签,我想要一种方法可以轻松地将所有“开发”标签更新为“开发”。不幸的是,我找不到一个插件来做到这一点,所以我想我会创建自己的。

在我设法掌握基础知识并发现 FireFox 将所有书签存储在名为 Places.sqlite 的 SQLite 数据库中之前,我还没有开发过插件。在该数据库中有一个名为 moz_bookmarks 的表,其中包含书签目录中的所有书签、标签和文件夹。书签文件夹及其子书签的结构使用外键 id 表示,该外键 id 指向同一个表中的父文件夹的 id,该表再次向上递归到该父文件夹的 Id,直到它到达书签根。

但是,我陷入困境的地方是您在 Firefox 中应用的标签与书签的关系。每个标签都有一个类型 = 2 和父 ID = 4。但是我看不出这与使用该标签的实际书签之间没有关联。如果我在 Firefox 中将书签添加到没有特定文件夹但给它 2 或 3 个标签,那么它的父文件夹 ID 为 5,对应于“未归档”,但我看不到与它关联的标签的进一步关联。

在结构上找到了这个 Wiki 页面,但它并没有真正帮助。

这让我发疯了:(请帮助...

0 投票
7 回答
38325 浏览

javascript - 如何在 Firefox 扩展中使用 jQuery

我想在 firefox 扩展中使用 jQuery,我在 xul 文件中导入了库,如下所示:

但是在 xul 文件中无法识别 $() 函数,jQuery() 也无法识别。

我搜索了这个问题并找到了一些解决方案,但没有人与我合作:http: //gluei.com/blog/view/using-jquery-inside-your-firefox-extension http://forums.mozillazine.org/ viewtopic.php?f=19&t=989465

我还尝试将'content.document'对象(引用'document'对象)作为上下文参数传递给jQuery函数,如下所示:

但仍然无法正常工作,以前有人遇到过这个问题吗?