11

Navigator オブジェクトのシリアル化中に RangeError が発生します。

その理由は何ですか?

JSON.stringify(navigator);
RangeError: Maximum call stack size exceeded

ブラウザ: クロム ここに画像の説明を入力

4

3 に答える 3

3

これは、エラー メッセージにあるように、navigatorオブジェクトが大きすぎるためです。

次のように、 dystroy の変更された JSON 関数を使用できます。

var navJSON = JSON.pruned(navigator);

返されるオブジェクトはかなり巨大ですが、完全に正しいとは限りません。navigatorJSON を使用してオブジェクトに関するデータを転送する場合は、オブジェクト全体ではなく、それらのプロパティのみを送信する必要があります。

于 2013-01-12T08:03:12.040 に答える
1

興味のある特定の値を新しいオブジェクトにコピーして、代わりにそれをシリアル化しないのはなぜですか?

おそらく、無限ループにつながるプロパティを見つけることです。

于 2013-01-12T08:08:46.593 に答える
1

ナビゲーターオブジェクトにセルフリンクが含まれている可能性があります。ナビゲーターを他のオブジェクトにコピーし、それらの大きなリンクを削除する必要があります。

于 2013-01-12T08:15:11.197 に答える