ホームページ > ウェブフロントエンド > jsチュートリアル > 非同期スクリプト読み込みで document.write() の制限をオーバーライドする方法

非同期スクリプト読み込みで document.write() の制限をオーバーライドする方法

Patricia Arquette
リリース: 2024-10-20 14:04:02
オリジナル
511 人が閲覧しました

How to Override document.write() Limitations in Asynchronous Script Loading?

非同期スクリプトの読み込み: document.write() の制限事項について

スクリプトを非同期で実行する場合、最初のページの読み込み後に、次のことが重要です。文書の操作に制限が生じることを認識しています。コンソール メッセージに記載されているように、「明示的に開かれない限り、非同期で読み込まれた外部スクリプトからドキュメントに書き込むことはできません。」

これは、そのような外部スクリプト内で document.write() を使用することを意味します。スクリプト自体は正常に読み込まれても、読み込まれたスクリプトはドキュメントに効果的に書き込みません。その理由は、ドキュメントが解析されて閉じられた後に非同期スクリプトが実行されるという事実にあります。

この問題に対処するには、document.write() を明示的な DOM 操作に置き換える必要があります。ドキュメントに直接書き込む代わりに、必要な DOM 要素を作成し、appendChild()、insertBefore() などのメソッドを使用するか、innerHTML プロパティを設定してドキュメントに追加します。

たとえば、 document を使用する代わりにインライン スクリプトの .write():

<div id="container">
<script>
document.write('<span style="color:red;">Hello</span>');
</script>
</div>
ログイン後にコピー

動的にロードされるスクリプトでは、これを次のものに置き換えます:

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 = '<span style="color:red;">Hello</span>';
ログイン後にコピー

これらのガイドラインに従うことで、「'Document' で 'write' を実行できませんでした」エラーが発生することなく、非同期で読み込まれたスクリプトから DOM を効果的に操作できます。

以上が非同期スクリプト読み込みで document.write() の制限をオーバーライドする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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