Влияние Doctype на работу JavaScript
Здравствуйте. Столкнулся с проблемой: с таким указанием
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> мой скрипт работает, а с таким <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> работать перестает, пишет что-то насчет неправильного указания ширины, высоты с помощью js. Может, кто подскажет, в чем дело? |
Есть разница в работе JavaScript, когда браузер находится в Quirks Mode и Standards Compliance Mode. В эти режимы браузеры переходят в зависимости от того, поддерживается ли указанный DTD, а так же переходят в Quirks Mode, если DTD вообще нет.
http://www.fastcoder.org/articles/?aid=825 http://pepelsbey.net/pro/2008/09/ie-street-magic/ Для определения, в каком режиме находится браузер, можно использовать свойство compatMode объекта document: document.compatMode == "BackCompat" // Quirks Mode document.compatMode == "CSS1Compat" // Standards Compliance Mode |
Короче говоря, всегда единицы указывайте (px), когда стили устанавливаете.
|
Не подскажите, какие существенные изменения в абсолютном позиционировании, указании ширины, высоты, top, left? То есть скрипт перестал работать вообще. Может obj.style.width = ... или obj.style.top уже не работают? Или где можно прочитать про именно различия в css и js в этих режимах?
|
Kolyaj, просто огромнейшее спасибо. Когда полностью отлаженный скрипт при переносе на сайт не заработал никак, было довольно неприятно)
|
Привет всем, сейчас столкнулся с тем что у меня тоже трабла с доктайпом, но была только в файерфоксе. Решилось тем что имя функции не должно содержать заглавных букв. Как только все маленькие стали все заработало.
|
Цитата:
|
Часовой пояс GMT +3, время: 04:39. |