Совместимость синтаксиса JavaScript в XML/HTML
Практически "всё работает", но хочу просвЯтиться в теории и стандартах
<script type="text/javascript"><!-- var A=0; --A; var S="Здесь был Вася"; //--> </script> 1) JS операция декремента в синтаксисе HTML обозначает конец комментария. 2) Кавычки в XML не допустимы. И как дальше с этим жить? :-E |
Цитата:
http://www.w3schools.com/xml/xml_cdata.asp Цитата:
|
Насколько я понимаю, CDATA не будет работать в HTML-браузерах без XML-парсера.
Меня интересует вопрос - возможно ли оформить JS код так, чтоб HTML-страница была одновременно валидной как HTML4/5, так и XML, работала бы без ошибок в старых и специальных браузерах. |
> JS операция декремента в синтаксисе HTML обозначает конец комментария.
только в sgml и толко внутри декларации. впрочем, не начинай комментарий > Кавычки в XML не допустимы допустимы |
tenshi,
С первым, конечно, правильно, хотя я "предпочёл" просто написать A=A-1 ;) Насчёт кавчек, не уверен, но по XML они д.б. заменены на мнемоники, и парсер должен останавливаться, если кавычка встретится вне тега. А на мнемонику можно заменить кавычки у скрипта только если скрипт вписывается в событие тега. |
Цитата:
Цитата:
повторю ещё раз-не придумывайте проблемы самостоятельно |
DOCTYPE - зло :-E
При использовании DOCTYPE в документе, браузер будет вероятно использовать соответствующий парсер, который не может быть надёжнее универсального. Многолетняя практика показывает, что валидный и с DOCTYPE документ будет с большей вероятность сломан одним из браузеров, чем без этой хрени. |
Цитата:
|
Цитата:
|
Цитата:
Цитата:
|
Цитата:
Судя по тому что вы предлагаете вообще не указывать doctype, можно с уверенностью сказать что никакого опыта у вас нет. Самый практичный метод - указание доктайпа <!DOCTYPE html>. И не потому что это модно. Это реально самый "безопасный" и не добавляющий никаких проблем доктайп (в отличие от всяких xhtml strict и прочего). А доктайп нужен по одной простой причине - чтобы браузер не ушел в quirks mode, стыдно не знать. Причем этот доктайп не указываеть браузеру какой парсер использовать. Парсер зависит от Content-Type. Причем во всех современных браузерах в случае с text/html используется html5 парсер, даже если указан html4 или html3 доктайп. Советую почитать это: http://habrahabr.ru/post/140155/ Что касается темы, то все просто: <script type="text/javascript"> //<![CDATA[ var A=0; --A; var S="Здесь был Вася"; //]]> </script> И html, и xml парсеры будут оба довольны таким кодом ) Разве что древние браузеры отобразят скрипт, но в нем соверменная страница в любом случае развалится в говно, так что нет смысла печься о каких-то абстрактных пользователях Opera 3.0 или IE 4.3 (цифры взял с потолка) |
Цитата:
|
jsjob, да, этот термин лучше всего тут подойдет.
Ради интереса, узнал что Opera 3 уже поддерживала скрипты. Попытался скачать opera 2 , но этой версии нету даже на фтп-сервере оперы: http://arc.opera.com/pub/opera/win/ но там самые старые версии идут начиная с 3.2 . Тоесть скорее на твой сайт зайдут с калькулятора чем с браузера, неподдерживающего тег script... |
Часовой пояс GMT +3, время: 15:32. |