Сценарий находится во внешнем файле. Происходит ошибка
script.js:7 Uncaught TypeError: Cannot read property 'addEventListener' of null at script.js:7 (anonymous) @ script.js:7 load (async) (anonymous) @ script.js:1
js/script
window.addEventListener('load', function () {
document.querySelector('#btn1').addEventListener('click', function () {
location.href = "./2.html";
});
document.querySelector('#btn2').addEventListener('click', function () {
location.href = "./1.html";
});
});
1.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<h1>1</h1>
<button id="btn1">go to 2</button>
</body>
<script src="js/script.js"></script>
</html>
2.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<h1>2</h1>
<button id="btn2">go to 1</button>
</body>
<script src="js/script.js"></script>
</html>
Если сценарий вополнять в файлах ошибки не происходит.
1.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<h1>1</h1>
<button id="btn1">go to 2</button>
</body>
<script>
window.addEventListener('load', function () {
document.querySelector('#btn1').addEventListener('click', function () {
location.href = "./2.html";
});
});
</script>
</html>
2.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<h1>2</h1>
<button id="btn2">go to 1</button>
</body>
<script>
window.addEventListener('load', function () {
document.querySelector('#btn2').addEventListener('click', function () {
location.href = "./1.html";
});
});
</script>
</html>
Не могу понять, подскажите. Спасибо.
Добавьте проверку наличия элемента, перед назначением обработчика.
window.addEventListener('load', function () {
var btn1 = document.querySelector('#btn1');
var btn2 = document.querySelector('#btn2');
if (btn1) {
btn1.addEventListener('click', function () {
location.href = "./2.html";
});
}
if (btn2) {
btn2.addEventListener('click', function () {
location.href = "./1.html";
});
}
});
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Надо бы, чтобы одновременно пробелы превращались в <br>, и первая буква становилась заглавная
Делаю выпадающие менюПробовал уже добавлять setTimeout, но он вообще перестает работать
после добавления элементов в список, при клике на какой-то элемент нужно удалить его