Старая идиома для получения очень старых браузеров для игнорирования блоков JavaScript в HTML-страницах заключается в том, чтобы обернуть содержимое элемента <script>
в комментариях HTML:
<script>
<!--
alert("Your browser supports JavaScript");
//-->
</script>
Обоснование заключается в том, что старые браузеры без JavaScript будут отображать как текст содержимое элемента <script>
, поэтому включение JavaScript в комментарий HTML заставляет браузер ничего не показывать.
Современный браузер, с другой стороны, увидит элемент <script>
и проанализирует его содержимое как JavaScript. Следовательно, комментарии должны быть действительными JavaScript. Закрывающий комментарий HTML (-->
) игнорируется парсером JavaScript, потому что ему предшествует комментарий линии JavaScript (//
).
Мой вопрос: как открытие HTML-комментария (<!--
) не приводит к сбою парсера JavaScript? Я слышал от разных людей, что открытый HTML-комментарий действителен JavaScript. Если верно, что комментарий открытия оценивается как JavaScript, что он делает, когда он выполняется?