До сегодняшнего дня ни разу не писал на чистом javascript'e. Но вот приспичило. У сразу же схлопотал ошибку, а что не так - не пойму.
Есть один файл (index.html):
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta charset="utf-8" />
<script src="script.js"></script>
</head>
<body>
<div id="qwer">11</div>
</body>
</html>
И второй файл (script.js):
(function () {
document.getElementById("qwer").innerHTML='44';
})();
В общем скрипт не работает, отладчик пишет "uncaught typeerror: cannot set property of null" Что же не так? Ведь элемент с id "qwer" существует.
В момент исполнения скрипта, документ еще не загрузился до конца.
Первый вариант. Вам нужно сделать аналог jquery метода $(document).ready(). Например, вызывать свой метод внутри window.onload = function(){}; Учтите, что таким образом функцию на событие можно навесить только один раз. Если мало - нужно сделать свой кроссбраузерный аналог jquery метода bind.
Есть второй вариант. Переместить вызов скрипта в самый низ документа.
(function () {
window.onload = function {
document.getElementById("qwer").innerHTML='44';
}
})();
Можно поставить в тег script defer)
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости