2013-01-12 9 views
8

Navigatorオブジェクトのシリアル化中にRangeErrorが発生しました。JSON.stringify(ナビゲータ)中に最大呼び出しスタックサイズを超えました

何故その理由が考えられますか?

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

ブラウザ:クローム enter image description here

+0

さらに詳しい情報 – Raekye

+0

ナビゲータオブジェクトの内容を表示する必要があります。 – StilesCrisis

+1

基本的に、ナビゲータオブジェクトが大きすぎます。 –

答えて

2

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

あなたはこのようdystroy's modified JSON functionを使用することができます。

var navJSON = JSON.pruned(navigator); 

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

1

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

おそらく、無限ループを引き起こすプロパティを見つけるでしょう。

+0

'navigator'オブジェクトはブラウザ間で標準的ではなく、すべての情報が利用可能であることを期待しています。 –

1

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