2015-07-08 4 views
2

Я пытаюсь изучить JavaScript из книги. В первой главе книги говорится использовать следующий формат для поддержки старых браузеров, которые не поддерживают JS. Фактически это просто, он использует тег комментария HTML, чтобы скрыть скрипт от браузеров, которые не поддерживают JS. Мое сомнение здесь в том, что этот код отлично работает для меня во всех браузерах, но показывает ошибку в Aptana Studio 3. Теперь я понимаю, что ошибка связана с Aptana с учетом «<» как оператора реляции, но как я могу устранить эту ошибку?Скрытие JavaScript от отображения в старых браузерах

<script> 
    <!-- 
     //some JS code over here... 
    //--> 
</script> 

Error (Ошибка синтаксиса: Неожиданный Токен) приходит на:

<!-- 
+0

Не беспокойтесь о совместимости с браузерами, которые не поддерживают JS. Каждый браузер поддерживает JS – Kerndog73

+1

Да, похоже, что это OLD-книга. Прохладный, чтобы знать, но я сомневаюсь, что вам когда-нибудь понадобится это использовать. Вы можете поиграть с ним в другом месте для удовольствия. http://jsbin.com/vuneyeqani/1/edit?html,output – m59

+2

http://stackoverflow.com/questions/808816/are-html-comments-inside-script-tags-a-best-practice – epascarello

ответ

1

Я знаю, что это не отвечает на ваш вопрос напрямую, но правда в том, что этого просто не нужно делать. Если браузер не знает, как интерпретировать JavaScript, почти все браузеры все равно будут игнорировать код. Кроме того, добавление <!-- // --> может быть опасным, а также по следующим причинам, учитывая Мэтт Круз:

  • В XHTML документов, источник на самом деле будет скрыт от всех браузеров и оказываемый бесполезно
  • Не допускается в пределах HTML комментарии, поэтому любые операции декремента в сценарии являются недействительными

Для более подробного объяснения, я рекомендую вам проверить this documentation о наилучшей практике для JavaScript и this question, что объясняет, почему использование HTML комментариев в JavaScript плохая практика.

Если по каким-либо причинам вы все еще хотите, чтобы показать содержимое пользователю, если они отключили JavaScript (или не может запустить его из старого браузера), используйте тег <noscript>

Если вы действительно deadset на закомментировать ваш JavaScript затем использовать этот код вместо этого, который не должен дать вам ошибку:

//<!-- 

//--> 

Если у вас есть какие-либо другие вопросы, не стесняйтесь спрашивать.

+0

Большое спасибо. Ваше объяснение было действительно полезно! – k19

-1

Каждый браузер теперь поддерживает JS. Этот трюк использовался, чтобы браузеры первого поколения не отображали JS-код в виде обычного текста.

Вы можете взглянуть на статью this.

Do not use the <!-- //--> hack with scripts. It was intended to prevent scripts from showing up as text on the first generation browsers Netscape 1 and Mosaic. It has not been necessary for many years. <!-- //--> is supposed to signal an HTML comment. Comments should be ignored, not compiled and executed. Also, HTML comments are not to include -- , so a script that decrements has an HTML error.

Edit 1: Если вы все еще хотите использовать этот трюк в Aptana Studio 3 попробуйте комментируя первую часть тоже:

<script> 
    //<-- 
    Code Goes Here... 
    //--!> 
</script> 

Я не проверял, но решил ошибку в Aptana

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