Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: тег комментария внутри скриптового блока
 
 автор: яса_1   (18.04.2015 в 09:21)   письмо автору
 
 

кто сможет объяснить, почему это работает (т.е.Hello! на странице появляется):
<body>
<script>
<!--
document.write ("<script>document.write ('Hello!')</script>");
-->
</script>
</body>

а точно такое же, но БЕЗ переносов строк внутри комментария - НЕ работает (страница остаётся девственно чистой)
<body>
<script>
<!-- document.write ("<script>document.write ('Hello!')</script>"); -->
</script>
</body>


консоль ошибок в обоих случаях "молчит как немая"

PS. тег комментария внутри скриптового блока в данном случае предназначены не для защиты от мифических браузеров, которые "не понимают" яваскрипта, а именно и только для того, чтобы не "разбивать на части" закрывающий тег </script> внутри метода write ()

  Ответить  
 
 автор: elenaki   (18.04.2015 в 12:40)   письмо автору
 
   для: яса_1   (18.04.2015 в 09:21)
 

Есть много, друг Горацио, на свете,
что и не снилось нашим мудрецам... (C)

А почему один перенос перед тэгом <img.. > приводит (сейчас не знаю, но раньше точно) к появлению 1px-й полоски перед ним? Перенос в коде! А почему /* (комментарий), если он написан /** уже по-другому читает класс?

  Ответить  
 
 автор: яса_1   (18.04.2015 в 16:59)   письмо автору
 
   для: elenaki   (18.04.2015 в 12:40)
 

по поводу "полоски" перед <img> - это я знаю
во-первых, она не однопиксельная, ширина её зависит от установленного в родителе размера шрифта
во-вторых, всякий перенос в html-коде преобразуется в пробел, а любое количество (> 0) пробельных символов подряд преобразуется в один неразрывный пробел
так что в итоге перенос перед <img> - это "неразрывный пробел перед img" (типа &nbsp;<img>)

  Ответить  
 
 автор: confirm   (18.04.2015 в 17:26)   письмо автору
 
   для: яса_1   (18.04.2015 в 09:21)
 

<script> 
    document.write ("<script>document.write ('Hello!')<\/script>"); 
</script>

  Ответить  
 
 автор: яса_1   (19.04.2015 в 00:52)   письмо автору
 
   для: confirm   (18.04.2015 в 17:26)
 

ладно, упрощаю вопрос, ибо сути его вы не поняли, увы

почему
<script>
<!--
alert ('работает');
-->
</script>


а вот это
<script>
<!-- alert ('НЕ работает'); -->
</script>

  Ответить  
 
 автор: Mookapek   (19.04.2015 в 03:26)   письмо автору
 
   для: яса_1   (19.04.2015 в 00:52)
 

В первом случае код javascript содержит 3 строки, первую и третью интерпретатор игнорирует, так как они некорректные, а вторую исполняет.

Во втором случае одна строка и javascript ее полностью игнорирует, т.к. не понимает, что такое "<!--" и "-->".

  Ответить  
 
 автор: яса_1   (19.04.2015 в 05:26)   письмо автору
 
   для: Mookapek   (19.04.2015 в 03:26)
 

неверно, потому что консоль ошибок молчит

проверьте
<script>
хрень любая
alert ('НЕ работает');
</script>

консоль сразу же укажет на ошибку в первой строке с записью SyntaxError: missing ; before statement и вторая строка с алертом исполняться уже не будет

  Ответить  
 
 автор: confirm   (19.04.2015 в 07:38)   письмо автору
 
   для: яса_1   (19.04.2015 в 05:26)
 

<!--alert('НЕ работает')--> - здесь ведь нет ошибки, вся строка это комментарий, поэтому и не исполняется. А так:
<!--
alert('НЕ работает')-->
уже будет генерироваться ошибка - не найден завершающий дескриптор.

Все это особенности JS, каждая команда с новой строки, а в JS их можно не завершать точкой с запятой:
<!-- alert ... - это комментарий и нет команд
<!-- это комментарий
alert ... а это уже команда

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования