ホームページ >ウェブフロントエンド >jsチュートリアル >`document.write()` 呼び出しで ` タグを分割するのはなぜですか?

`document.write()` 呼び出しで ` タグを分割するのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-05 13:35:45146ブラウズ

Why Split the `` Tag in `document.write()` Calls?

<スクリプト> を分割するdocument.write() 呼び出し内のタグ: なぜ?

はじめに:

document.write() 内で HTML タグを複数の部分に分割する手法は、多くの開発者を困惑させてきました。 。特に、<script> の分割は、タグはその目的について疑問を呈しています。この記事では、この手法の背後にある理由を詳しく掘り下げ、関連する課題と考慮事項に光を当てます。</script>

の課題タグの配置:

を分割する主な理由タグは、HTML の基礎となるマークアップ言語である SGML の興味深い動作によるものです。 SGML によれば、スクリプト ブロックは、 を含む「終了タグ オープン」(ETAGO) シーケンスによって終了します。ただし、このルールは document.write() 呼び出し内で問題を引き起こします。

タグが分割されていないと、囲んでいる <script></script> が途中で終了してしまいます。ブロック。これを防ぐには、開発者はタグを分割し、

ブラウザの互換性と XHTML に関する考慮事項:

の分割タグはブラウザの互換性の問題にも対処します。ブラウザは通常、HTML を CDATA として解析し、 でスクリプト ブロックを終了するだけです。

XHTML では、スクリプト ブロックは特別に扱われず、すべてエスケープされません。

文字は & を使用してエスケープする必要があります。ただし、これにより、ブラウザが XHTML を HTML として解析するときに混乱が生じる可能性があります。 を分割する

代替アプローチ:

document.write('\x3Cscript type="text/javascript" src="foo.js">\x3C/script>');
分割中 タグにより、両方のタイプのパーサーとの互換性が保証されます。 document.write() 内のタグは一般的な方法ですが、これが唯一のオプションではありません。より洗練された解決策は、<script> 全体をエンコードすることです。特殊文字を使用したタグ。<p><🎜>このメソッドは HTML パーサーと XHTML パーサーの両方で動作し、タグを分割する必要がなくなります。<🎜></script>

以上が`document.write()` 呼び出しで ` タグを分割するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。