非同期で読み込まれるスクリプトでは、このコードは次のように置き換えることができます。

var container = document.getElementById(\\\"container\\\");var content = document.createElement(\\\"span\\\");content.style.color = \\\"red\\\";content.innerHTML = \\\"Hello\\\";container.appendChild(content);

コンテナが空であるため、次の簡略化されたコードを使用することもできます。

var container = document.getElementById(\\\"container\\\");container.innerHTML = \\'Hello\\';

これらの DOM 操作手法を採用することで、開発者は非同期で読み込まれたスクリプトからドキュメントに効果的に書き込み、制限を回避できます。 document.write().

によって強制されます","image":"http://www.luping.net/uploads/20241104/17307187276728ac0702fe7.jpg","datePublished":"2024-11-09T03:16:22+08:00","dateModified":"2024-11-09T03:16:22+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > document.write() が非同期的に読み込まれるスクリプトで制限されているのはなぜですか?

document.write() が非同期的に読み込まれるスクリプトで制限されているのはなぜですか?

2024 年 11 月 9 日に公開
ブラウズ:875

Why is document.write() Restricted in Asynchronously Loaded Scripts?

非同期でロードされたスクリプトの実行制限: document.write() の制限について

非同期でロードされたスクリプトからドキュメントに書き込もうとすると、コンソール メッセージ「'Document' で 'write' の実行に失敗しました: を実行することはできません」明示的に開かれない限り、非同期でロードされた外部スクリプトからドキュメントに書き込みます。」このメッセージは、スクリプトの予期された動作にもかかわらず表示される場合があり、開発者は困惑しています。

制限が存在する理由

非同期で読み込まれたスクリプトは、多くの場合、ドキュメントが解析され、閉まっている。したがって、そのようなスクリプトから document.write() を使用すると、ドキュメントが書き込み用に開かれなくなるため、問題が発生します。

解決策: 明示的な DOM 操作

ドキュメントを使用する代わりに.write() を使用する場合、開発者は非同期で読み込まれるスクリプトで DOM を明示的に操作する必要があります。これには、DOM 要素を作成し、.appendChild()、.insertBefore() などのメソッドを使用して目的の親要素に挿入するか、.innerHTML を設定する必要があります。

例: DOM 操作

]

説明のために、次のインライン スクリプトを考えてみましょう:

非同期で読み込まれるスクリプトでは、このコードは次のように置き換えることができます。

var container = document.getElementById("container");
var content = document.createElement("span");
content.style.color = "red";
content.innerHTML = "Hello";
container.appendChild(content);

コンテナが空であるため、次の簡略化されたコードを使用することもできます。

var container = document.getElementById("container");
container.innerHTML = 'Hello';

これらの DOM 操作手法を採用することで、開発者は非同期で読み込まれたスクリプトからドキュメントに効果的に書き込み、制限を回避できます。 document.write().

によって強制されます
リリースステートメント この記事は次の場所に転載されています: 1729404437 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3