Не работает Javascript при заданном doctype
Здравствуйте.
Скрипт: function resizeRock() { document.getElementById("rockImg").style.height = (document.body.clientHeight - 100) * 0.9; } HTML <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>iRock - The Virtual Pet Rock</title> <script type="text/javascript" src="js/script.js"></script> </head> <body onload="resizeRock();"> <div style="margin-top:100px; text-align:center"> <img id="rockImg" src="images/rock.png" alt="iRock" style="cursor:pointer" /> </div> </body> </html> Если убрать doctype, скрипт работает.. Но почему так происходит, и что с этим делать? ведь нельзя же верстать без doctyp'a.. |
Может как-нибудь так?
function resizeRock() { document.getElementById("rockImg").style.height = (document.documentElement.clientHeight - 100) * 0.9; } А вообще, если Вы хотите высоту картинки рястянуть на всю высоту окна браузера, то лучше это сделать через CSS: #rockImg {position:absolute; height-min:100%;} |
Как сделать это css я понимаю, но сейчас учу javascript по этой супер-книге (http://www.ozon.ru/context/detail/id/7301823/) и на первых примерах уже столкнулся с фатальной проблемой.
Мало того что код не работает с doctype, так еще за то время что ее переводили успел устареть метод onresize.. И в принципе в голове не укладывается как doctype влияет на javascript? |
Цитата:
Цитата:
|
Спасибо за подсказку. Добавил единицы измерения и все заработало включая onresize:
function resizeRock() { document.getElementById("rockImg").style.height = (document.documentElement.clientHeight - 100) * 0.9 +"px"; } Приводить к числовому типу не пришлось. Прочитал что без doctype работает quirk mode.. Получается в старых браузерах единицы измерения по умолчанию были в пикселях? |
Та же фигня, даже если я добавляю "px"
<!DOCTYPE html> <head> <meta http-equiv="content-type" content="text/html" /> <meta name="author" content="Valval" /> <title>IRock - виртуальный любимец Rock</title> <script type="text/javascript" src="cookie.js"></script> <script type="text/javascript"> var userName; function resizeRock() { document.getElementById("rockImg").style.height = (document.body.clientHeight - 100) * 0.9 + "px"; } function greetUser() { if(navigator.cookieEnabled) userName = readCookie("irock_username"); if (userName) alert("Hello, " + userName + "I meesed you."); else alert('Hello, I am your pet rock.'); } function touchRock () { if(userName){ alert ("Спасибо за внимание, " + userName + "."); } else { userName = prompt("Как вас зовут?", "Введите ваше имя."); if (userName) { alert ("Рад Вас видеть, " + userName + "."); if(navigator.cookieEnabled) writeCookie("irock_username", userName, 5*365); else alert("Сорри, но ваш браузер не поддерживает куки.(((") } } document.getElementById("rockImg").src = "rock_happy.png"; setTimeout("document.getElementById('rockImg').src = 'rock.png';", 5 * 60 * 1000); } </script> </head> <body onload="resizeRock(); greetUser();" onresize="resizeRock();"> <div style="margin-top: 100px; text-align: center;"> <img id="rockImg" src="rock.png" alt="IRock" style="cursor: pointer;" onclick="touchRock();" /> </div> </body> </html> |
Цитата:
|
Часовой пояс GMT +3, время: 09:41. |