Помощь - Поиск - Пользователи - Календарь
Полная Версия: Вопрос про ремарку в HTML
Форум поддержки IPB.SU > Администрирование
Ларочка
У меня вызывает некоторое недоумение тот факт, что во многих местах кода HTML при редактировании шаблона форума я вижу коды javascript, заключенные в ремарку.
Скажите мне - зачем?
Эти коды исключены, но на фига?.. Ведь как я понимаю синтаксис, в ремарке написанное игнорируется... или я не так понимаю.

Вот пример, это просто навскидку

Код

 </style>
 <script language='javascript' type="text/javascript">
 <!--
  function redirect_to(where, closewin)
  {
  document.location= '{ibf.script_url}' + where;
  if (closewin == 1)
  {
   self.close();
  }
  }
 //-->
 </script>
</head>


Зачем заявлять о том, что идет код, потом этот код забить ремаркой, т.е. игнорируемым текстом для системы, и закрыть тег заявленного кода... unsure.gif Что я тут понимаю не так...

Очень хочется получить разъяснения.
dci
Это не является комментарием, скрипт выполняется
Ларочка
А зачем тогда значок ремарки? Какая смысловая нагрузка в его использовании...

ps
Поясню свои непонятки в этом возникшем вопросе.

Например, я решила, что на моем форуме в форме быстрого ответа мне совсем не нужна позиция загрузки файлов и вывод полного окна смайликов. Я эти функции в админке, в редактировании шаблонов, просто беру в ремарку и получаю нужный результат - они не отображаются больше, потому что системой воспринимаются как поясняющий текст, а не команды.

вот код
Цитата
<textarea style='margin:0px;padding:4px;width:98%' cols="70" rows="13" name="Post" class="textinput" tabindex="1" id="tex" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onfocus="storeCaret(this);"></textarea>
<br />
<!--
<a href='javascript:emo_pop();'>{ibf.lang.show_emo}</a>
<input type='file' name='FILE_UPLOAD' size="80" class='forminput'/><br /><br />
-->
<input type='checkbox' name='enableemo' value='yes' class="checkbox" checked="checked" />&nbsp;{ibf.lang.qr_add_smilie} |
<input type='checkbox' name='enablesig' value='yes' class="checkbox" checked="checked" />&nbsp;{ibf.lang.qr_add_sig}


вот результат
[attachmentid=828]

Если взять в ремарку <!-- ..... --> , то HTML текст игнорирует, и тут все понятно.
Для яваскрипт такие значки являются какой-то командой? Я не нашла ситаксиса. После объявления кода для HTML пошел синтаксис уже для явы, а не свой. Но!!!... Что он значит???
Ну расскажите. Очень уж любопытно знать.
gagarin
Это трюк из прошлого века для браузеров, которые не умеют Javascript и не знают про тэг <script>

Если браузер не умеет Javascript и не знает про <script>, то он показывает то, что заключено в тэге <script> в виде текста на странице.
Именно поэтому это заключено в HTML-комментарий.

Самый сок в том, что для этой ерунды в Джаваскрипте сделали валидной конструкцию "<!--" (с точки зрения здравого смысла интерпретатор должен считать это синтаксической ошибкой).

Таким образом:
Код

<script language='javascript' type="text/javascript">
<!-- // Если умеем выполнять JS, то ничего не делаем, если не умеем - то начинаем HTML-комментарий
 function redirect_to(where, closewin) // Начало скрипта
 {
 document.location= '{ibf.script_url}' + where;
 if (closewin == 1)
 {
  self.close();
 }
 } // Конец скрипта
//--> // Это JS-комментарий (строка начинается с "//"). Тут почти ничего здравому смыслу не противоречит. Если умеем выполнять JS - не делаем ничего, если нет - закрываем HTML-комментарий.
</script>


Надеюсь, что объяснил понятно.

Q: Почему это есть на страницах в интернете в 2015 году?
A:Скорее всего, это осталось от старой версии IPB, взятой за основу для движка форумов.

Q: Надо ли мне делать так же со своими скриптами?
A: Нет, не надо. Браузеры, для которых этот грязный трюк предназначался, больше не используются.
Ларочка
Цитата
Надеюсь, что объяснил понятно.


Благодарю за ответ, все теперь абсолютно ясно стало.
Это архивная версия. Здесь расположена полная версия этой страницы.
Работает на IP.Board © 2019 IPS, Inc.