ホームページ > ウェブフロントエンド > jsチュートリアル > 「chrome.extension.sendRequest」が「循環構造を JSON に変換しています」エラーで失敗するのはなぜですか?

「chrome.extension.sendRequest」が「循環構造を JSON に変換しています」エラーで失敗するのはなぜですか?

Susan Sarandon
リリース: 2024-12-15 09:07:11
オリジナル
770 人が閲覧しました

Why Does `chrome.extension.sendRequest` Fail with a

「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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート