Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Влияние Doctype на работу JavaScript (https://javascript.ru/forum/events/6129-vliyanie-doctype-na-rabotu-javascript.html)

13rust 12.11.2009 11:20

Влияние 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.
Может, кто подскажет, в чем дело?

Octane 12.11.2009 11:42

Есть разница в работе 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

Kolyaj 12.11.2009 11:55

Короче говоря, всегда единицы указывайте (px), когда стили устанавливаете.

13rust 12.11.2009 11:57

Не подскажите, какие существенные изменения в абсолютном позиционировании, указании ширины, высоты, top, left? То есть скрипт перестал работать вообще. Может obj.style.width = ... или obj.style.top уже не работают? Или где можно прочитать про именно различия в css и js в этих режимах?

13rust 12.11.2009 12:39

Kolyaj, просто огромнейшее спасибо. Когда полностью отлаженный скрипт при переносе на сайт не заработал никак, было довольно неприятно)

D1mka 24.11.2009 21:27

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

Octane 24.11.2009 21:51

Цитата:

Сообщение от D1mka
имя функции не должно содержать заглавных букв

Неправда


Часовой пояс GMT +3, время: 22:19.