Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум поддержки IPB.SU > Администрирование > Вопрос про ремарку в HTML


Автор: Ларочка Окт 2 2015, 15:46
У меня вызывает некоторое недоумение тот факт, что во многих местах кода 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 Окт 2 2015, 16:07
Это не является комментарием, скрипт выполняется

Автор: Ларочка Окт 2 2015, 16:11
А зачем тогда значок ремарки? Какая смысловая нагрузка в его использовании...

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 Окт 3 2015, 21:59
Это трюк из прошлого века для браузеров, которые не умеют 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: Нет, не надо. Браузеры, для которых этот грязный трюк предназначался, больше не используются.

Автор: Ларочка Окт 4 2015, 17:45
Цитата
Надеюсь, что объяснил понятно.


Благодарю за ответ, все теперь абсолютно ясно стало.

Powered by Invision Power Board (//www.invisionboard.com)
© Invision Power Services (//www.invisionpower.com)