День добрый! В каком-то смысле, я разобрался, но не до конца. Проблема в том что есть скрипт, который работает по разному если ставить его в head или в конце, на ряд выше закрывающего тега body. Но почему это происходит по разному если и там и там я использую window.onload? Читаю про это, и вижу: "Обработчик window.onload срабатывает, когда загружается вся страница, включая ресурсы на ней — стили, картинки, ифреймы и т.п.", значит, как я понимаю, скрипт должен заработать только после того как страничка уже загружена полностью, но не тут то было! Привожу пример:
JS код:
window.onload = touchRock();
function touchRock() {
var userName = prompt("What is your name?", "Insert your name.");
if (userName) {
alert("Glad to see you, " + userName);
document.getElementById('rockImg').src = 'img/rock_happy.gif';
}
}
и рабочий вариант:
<!doctype html>
<html>
<head>
<title>iRock - Виртуальный любимец Rock</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" media="screen" href="style.css">
</head>
<body>
<div class="rock">
<img id="rockImg" src="img/rock.gif" alt="iRock" style="cursor:pointer" />
</div>
<script src="js/someAlert.js"></script>
</body>
</html>
а вот и вариант который выдаёт мне ошибку "Cannot set property 'src' of null":
<!doctype html>
<html>
<head>
<title>iRock - Виртуальный любимец Rock</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" media="screen" href="style.css">
<script src="js/someAlert.js"></script>
</head>
<body>
<div class="rock">
<img id="rockImg" src="img/rock.gif" alt="iRock" style="cursor:pointer" />
</div>
</body>
</html>
Хорошо, ошибка есть, но, тогда интересный вопрос, почему с prompt и alert-ом всё нормально?