非常に古いブラウザーで HTML ページの JavaScript ブロックを無視するための古いイディオムは、<script>
要素のコンテンツを HTML コメントでラップすることです。
<script>
<!--
alert("Your browser supports JavaScript");
//-->
</script>
その理由は、JavaScript を使用しない古いブラウザーは<script>
要素のコンテンツをテキストとしてレンダリングするため、JavaScript を HTML コメントに入れると、ブラウザーは何もレンダリングする必要がなくなるからです。
一方、最新のブラウザーは<script>
要素を認識し、その内容を JavaScript として解析します。したがって、コメントは有効な JavaScript である必要があります。HTML の終了コメント ( -->
) は、JavaScript の行コメント ( ) が前にあるため、JavaScript パーサーによって無視されます//
。
私の質問は、開始HTML コメント ( <!--
) によって JavaScript パーサーが失敗しないのはなぜですか? 冒頭の HTML コメントは有効な JavaScript だと、いろいろな方から聞いています。開始コメントが JavaScript として評価されるというのが本当なら、それが実行されるとどうなりますか?