getElementById и null - почему?
Почему этот код не работает? Я использую FF.
<head>
<script type="text/javascript">
document.getElementById("someID").onclick = function(){
alert("Yahooo");
}
</script>
</head>
<body>
<a href="#" id="someID">someID</a>
</body>
</html>
Я получаю ошибку JavaScript, getElementById равно нулю.
2 ответа
Решение
Необходимый DOM не загружается при выполнении скрипта. Либо переместите его вниз (ниже href), либо определите его так:
window.onload = function () {
document.getElementById("someID").onclick = function(){
alert("Yahooo");
}
}
window.onload будет вызываться, когда страница полностью загружена.
Поскольку элемент еще не существует во время выполнения скрипта - документ еще не обработан. Либо запустите скрипт в блоке скрипта после связанного HTML, либо используйте обработчик события "документ готов" - желательно из чего-то вроде jQuery's .ready()
событие, или родной window.onload
,