Проблема с html-комментариями Firefox 3

#html #firefox #xhtml

#HTML #firefox #xhtml

Вопрос:

Итак, у меня есть сайт, где есть много мест, где html-комментарии записываются как

Я заметил, что когда вы пишете:

             <div>hello</div>
            <!-- COMMENT --------------- //-->
            <div>hello2</div>
  

Отображается только hello2. Если вы не вводите тире в конце:

         <div>hello3</div>
        <!-- COMMENT --------------- -->
        <div>hello4</div>
  

затем печатаются как hello3, так и hello4. Теперь, есть ли у меня способ заставить это работать так, как предполагается, не просматривая весь сайт и не изменяя все комментарии?
Кстати, он отлично отображается во всех браузерах, включая Firefox 4 и даже IE. Проблема возникает только в FF 3.6

Комментарии:

1. Я понимаю, что то, что у вас есть, ДОЛЖНО работать, однако вам следует научиться не использовать символ, специфичный для синтаксиса комментария, такой как ваш ‘-‘, для применения интервалов и форматирования к вашим комментариям. Вместо этого используйте символ типа ‘#’ или что-то в этомроде.

2. Не могли бы вы, пожалуйста, определить, какова ваша цель?

Ответ №1:

Комментарий начинается и заканчивается последовательностью -- .

 <!-- COMMENT --------------- //-->
  

означает:

  • начать комментировать
  • Космос
  • Комментарий
  • Космос
  • завершить комментарий
  • начать комментировать
  • завершить комментарий
  • начать комментировать
  • завершить комментарий
  • начать комментировать
  • завершить комментарий
  • тире, пробел, косая черта (вне комментария!)
  • начать комментировать

Есть причина, по которой в спецификации HTML говорится:

Распространенной ошибкой является включение строки дефисов («—«) в комментарий. Авторам следует избегать размещения двух или более смежных дефисов внутри комментариев.


Теперь, есть ли у меня способ заставить это работать так, как предполагается, не просматривая весь сайт и не изменяя все комментарии?

Нет.

Кстати, он отлично отображается во всех браузерах, включая Firefox 4 и даже IE. Проблема возникает только в FF 3.6

Слишком много плохих авторов, зависящих от ошибок в неправильной обработке комментариев некоторыми браузерами, привели к тому, что производители браузеров отказались от попыток правильно реализовать комментарии.

Mozilla не сдавалась до выпуска Firefox 3.6

Комментарии:

1. Действительно забавный аспект этого — попытка напечатать информацию об отладке в HTML-комментариях или прокомментировать результаты пользовательской разметки. Вы должны запустить специальную экранирующую функцию над текстом, чтобы убедиться, что он не содержит — pairs .

Ответ №2:

Такое использование тире в HTML-комментариях приводит к непредсказуемому поведению. Смотрите https://bugzilla.mozilla.org/show_bug.cgi?id=2749 для получения дополнительной информации о различиях в синтаксическом анализе HTML-комментариев. (Источник http://www.hixie.ch/tests/evil/mixed/comments-evil.html очень хороший пример)

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