ホームページ >ウェブフロントエンド >jsチュートリアル >`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 サイトの他の関連記事を参照してください。