LINUX.ORG.RU

Борьба с IE6, w3c и комментарии...


0

0

В общем, вывесил я тут такое у себя:

<!--[if lt IE 7]><dl class="box"><dd class="warning_note left">
Вы используете Internet Explorer устаревшей и не поддерживаемой более версии.
Чтобы не было проблем с отображением сайтов или форумов обновите его до 
<a href="http://www.microsoft.com/rus/windows/downloads/ie/getitnow.mspx">версии 7.0</a> или более новой. Ещё лучше - поставьте
браузер <a href="http://www.opera.com/">Opera</a> или 
<a href="http://mozilla.ru/">Mozilla Firefox</a>. <br/><br/>
<b>Обсудить и задать вопросы <a href="http://balancer.ru/support/2009/02/t66122--IE6-bol~she-ne-podderzhivaetsya.8198.html">можно в этой теме</a></b>.
</dd></dl><![endif]>

И всё бы б было хорошо, как бы б не было так грустно.

1. w3c валидатор обламывается на ссылке на куске t66122--IE6, ругаясь на букву «I»: invalid comment declaration: found name start character outside comment but inside comment declaration.

То есть «--» считает за окончание комментария.

2. Во всех браузерах не смотря на это всё работает как надо, кроме FF3. В нём выводится простой текст «можно в этой теме».

Есть мысли, как использовать «--» внутри блоков комментария? :)

★★★★★
Ответ на: комментарий от ovax

>Сделай симлинк с человеческим именем :)

Хочется прямого решения, а не костыля :)

А то вдруг мне в том же JS в такой конструкции захочется декрементов/инкрементов.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от ovax

>Заменить "--" на "%2D%2D" ?

Первое, что в голову пришло. Но как-то оно работает через раз :)

KRoN73 ★★★★★
() автор топика

А конца комментария (-->) там в самом деле нету, или я слепой? Если нету, то может быть, стоит добавить?

dexpl ★★★★★
()
Ответ на: комментарий от dexpl

>А конца комментария (-->) там в самом деле нету, или я слепой?

Вместо него <![endif]>.

...

Хм. Порылся сейчас, в разных руководствах разный финальный ограничитель пишут. Где "<![endif]>", а где "<![endif]-->".

Сейчас поиграю.

Но вряд ли это поможет, так как и w3c валидатор, и FF3 сваливаются задолго до конца блока. Валидатор ругается именно на первый же "--".

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

Хм. Очень интересно. Очень!

У меня оно в коде как раз "<![endif]-->". И wget, и Опера извлекают иенно так.

Но FF3 показывает в коде именно "<![endif]>"

Например, http://balancer.ru/tech/forum/2008/09/t63627--ionice-rulit.9969.html

В исходном коде на сервере и при просмотре кода в Опере:

<!--[if lt IE 7]><dl class="box"><dd class="warning_note left">
Вы используете Internet Explorer устаревшей и не поддерживаемой более версии.
Чтобы не было проблем с отображением сайтов или форумов обновите его до
<a href="http://www.microsoft.com/rus/windows/downloads/ie/getitnow.mspx">версии 7.0</a> или более новой. Ещё лучше - поставьте
браузер <a href="http://www.opera.com/">Opera</a>; или
<a href="http://mozilla.ru/">Mozilla Firefox</a>. <br/><br/>
<b>Обсудить и задать вопросы <a href="http://balancer.ru/support/2009/02/t66122--IE6-bol~she-ne-podderzhivaetsya.81... в этой теме</a></b>.
</dd></dl><![endif]-->

При просмотре кода в Firefox3:

<!--[if lt IE 7]><dl class="box"><dd class="warning_note left">
Вы используете Internet Explorer устаревшей и не поддерживаемой более версии.
Чтобы не было проблем с отображением сайтов или форумов обновите его до
<a href="http://www.microsoft.com/rus/windows/downloads/ie/getitnow.mspx">версии 7.0</a> или более новой. Ещё лучше - поставьте
браузер <a href="http://www.opera.com/">Opera</a>; или
<a href="http://mozilla.ru/">Mozilla Firefox</a>. <br/><br/>
<b>Обсудить и задать вопросы <a href="http://balancer.ru/support/2009/02/t66122--IE6-bol~she-ne-podderzhivaetsya.81... в этой теме</a></b>.
</dd></dl><![endif]>


KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

Поменял ссылку на не имеющую "--" и всё прошло. И резать "-->" Фокс в конце перестал.

...

Налицо опять кривь Фокса с обработкой комментов, кстати. Пусть даже и глючащих с w3c. Всё же, XXI век на дворе, принцип GIGO признан морально устаревшим :) И, ведь, наступал я уже на эти грабли Фокса 4 года назад:

http://forum.mozilla-russia.org/viewtopic.php?pid=7301

...

Я только не понимаю, за каким хреном в w3c в комментариях сделали недопустимой последовательность "--"? Они бы ещё пробел недопустимым сделали...

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

> Но вряд ли это поможет, так как и w3c валидатор, и FF3 сваливаются задолго до конца блока. Валидатор ругается именно на первый же "--".

Всё правильно. Если в комментарии встречается "--", то документ - не валидный.

http://www.w3.org/TR/2008/REC-xml-20081126/#sec-comments

Цитата: For compatibility, the string " -- " (double-hyphen) MUST NOT occur within comments

nozh
()

Используй entities: &блабла;

Амперсанд, к примеру, так же в урлах надо экранировать.

Deleted
()
Ответ на: комментарий от Deleted

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

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

А ты думал. Там парсинг идёт простой, до любых двух чёрточек. Это как и в случае со скриптами встроенными — x--. Амперсанды же экранируешь и ничего. Так что… удачи, так сказать, в труде и обороне ☺

Ещё, помнится, в XHTML (? по крайней мере в XML) ограниченный набор именованых entities, тоже можно об это сподкнуться, так что экранируй сразу по номеру символа (ну или просто HTML использовать) :]

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.