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
動作しないスクリプトの例: ユーザースクリプト:
Beautifier + Deobfuscatorターゲット: http://userscripts.org/scripts/review/58687
(すぐに例を追加します)仕事から帰ると)

問題について考えさせられた他の情報源:
多くのスクリプトが機能しなくなった?

4

2 に答える 2

0

Firefox 4 で削除されたことを私が知っている唯一の機能は、Web ページ内で直接 XUL を使用できる機能 (つまり、-moz-bindingCSS スタイルを使用する機能) です。

それがあなたのスクリプトに影響を与えているかどうかはわかりません。これは、かなり有名な Firefox ハック ( Firefox 4 の text-overflow:ellipsis を参照してください? (および FF5) を参照) の 1 つに影響を与えましたが、この変更によるその他の影響については知りませんでした。

于 2011-03-24T11:36:06.890 に答える
0

Firefox 4 以降、反復ごとに新しいインスタンスが作成され、無限ループが発生するため、RegExp をループ条件として使用することはできません。(最後のインデックス = 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 に答える