ホームページ >ウェブフロントエンド >jsチュートリアル >「chrome.extension.sendRequest」が「循環構造を JSON に変換しています」エラーで失敗するのはなぜですか?
「chrome.sendRequest」の循環参照エラーを明らかにする
「chrome.extension.sendRequest」を呼び出すと、複雑なエラーが発生する可能性があります。 「TypeError: 循環構造を JSON に変換しています」エラー。このエラーは、リクエストで渡したオブジェクト (通常は「pagedoc」に保存されている) に循環参照が含まれている場合によく発生します。
循環参照は、「pagedoc」内のオブジェクトがそれ自体を参照するか、別のオブジェクトを参照するときに発生します。 「pagedoc」内で無限ループが作成されます。たとえば、次のようなネストされたプロパティを定義できます。
var a = {}; a.b = a;
このシナリオでは、オブジェクトをシリアル化しようとすると無限ループが発生するため、JSON.stringify は循環構造をエンコードできません。
DOM ノードと循環参照
特に、DOM ノードには次のものが含まれることがよくあります。 DOM ツリーに接続されていない場合でも、循環参照。各ノードは、通常「ドキュメント」オブジェクトを指す「ownerDocument」プロパティを所有します。一方、「document」オブジェクトには、「document.body」および「document.body.ownerDocument」を介して DOM ツリーへの複数の参照があります。この循環性は DOM の階層構造に固有のものです。
そのため、「chrome.sendRequest」リクエストで DOM ノードを扱うときは、この問題を防ぐために循環参照に必ず対処してください。
以上が「chrome.extension.sendRequest」が「循環構造を JSON に変換しています」エラーで失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。