1

我为 userscripts.org 开发脚本,刚刚将我的 fx 从 3.6.16 升级到 4.0,但我的许多脚本停止工作并出现以下消息错误:

Error: Component returned failure code: 0x8007000e (NS_ERROR_OUT_OF_MEMORY) [nsIXPCComponents_Utils.evalInSandbox]
Source code: file:///xxx.user.js

我知道这条消息意味着某种“无限”的过程,但它没有出现任何可以帮助我弄清楚的行号。

欢迎任何帮助/答案/链接。

操作系统: Windows 7 64 位
Greasemonkey 版本: 0.9.1
不工作的脚本示例:用户脚本:美化器 + 反混淆器目标:http :
//userscripts.org/scripts/review/58687 (我会尽快添加更多示例当我下班回家时)

让我想到这个问题的其他来源:
很多脚本不再工作?

4

2 回答 2

0

我所知道的唯一一个在 Firefox 4 中被删除的功能是能够直接在网页中使用 XUL(即使用-moz-bindingCSS 样式)。

我不知道这是否影响了您的脚本。它影响了一个相当知名的 Firefox hack(参见text-overflow:ellipsis in Firefox 4? (and FF5)),但我不知道此更改的任何其他影响。

于 2011-03-24T11:36:06.890 回答
0

从 Firefox 4 开始,您不能使用 RegExp 作为循环条件,因为每次迭代都会创建一个新实例,从而导致无限循环。(lastIndex = 0)

while (/.../g.exec("...")) {  // used to work
    /* your code goes here */
}

为防止这种情况发生,请使用 RegExp 创建一个单独的变量:

var re = /.../g;
while (re.exec("...")) {  // works perfectly
    /* your code goes here */
}
于 2013-09-09T23:51:54.870 回答