2015-05-20 2 views
1

У меня есть радостная задача работать над старым веб-приложением. В нескольких HTML-файлов, встроенных Javascript используется следующий синтаксис:Комментирование inline javascript

<body> 

html goes here... 

    <script> 
    <!-- 
     javascript goes here 
    --> 
    </script> 
</body> 

(EDIT: теги сценария внутри тела)

Обратите внимание на HTML комментарий, который обернут вокруг всего яваскрипта кода. Это на самом деле ничего не делает, поскольку все браузеры игнорируют комментарии html внутри тегов скриптов. Мой вопрос прост: почему разработчик из прошлого когда-либо делал это? Была ли это какая-то оптимизация или проблема с кросс-браузером, которая могла быть исправлена ​​с помощью html-комментария «взломать»?

Я удалил комментарии на данный момент, и все выглядит нормально.

+0

К сожалению, плохое форматирование, они на самом деле внутри тела теги. – user1884155

ответ

2

Предположим, что ваш <script> элемент является внутри тела и не после, это было решение, чтобы позволить очень старые браузеры не подозревая о том, что это <script> элемент игнорировать его содержимое, а его отображения (браузеры должны отображаться как текст содержания тегов они не понимают).

Этот хак должен был исчезнуть очень скоро, так как было очень редко найти браузеры, не зная, что такое элемент <script>, но, к сожалению, эта плохая практика не умерла достаточно быстро из-за некоторых плохих учебных пособий, которые по-прежнему советуют такие конструкции еще недавно.

Обратите внимание, что элемент сценария, расположенный за пределами тела и головы, недействителен.

2

В древние дни javascript (1995) некоторые браузеры, такие как Netscape 1.0, не имели никакой поддержки или знания тега скрипта. Поэтому, когда javascript был впервые выпущен, понадобилась техника, чтобы скрыть код от старых браузеров, чтобы они не отображали его как текст на странице. «Hack» заключался в том, чтобы использовать комментарии HTML в блоке сценария, чтобы скрыть код. Подробное описание проверки this link

source

1

В рядный HTML комментарии являются для предотвращения старых браузеров, которые не понимают элемент сценария диаголового код сценария в простом текста.

Старые браузеры, которые не понимают элемент сценария будет интерпретировать все содержимое элемента сценария выше в качестве одного HTML комментария, начиная с «», эффективно полностью игнорируя сценарий.

Если HTML комментарий не был там, весь сценарий будет отображаться в виде обычного текста для пользователя с помощью этих браузеров

Source

Смежные вопросы