2016-05-05 3 views
0

У меня есть два файла .html (Intro.html и Main.html), совместно использующие внешний .js-файл.accessing document.getElementById из другого окна

Мой файл первый .html открывает 2-ую .html с помощью настраиваемой кнопки и .online события из внешнего файла .js, используя

document.getElementById("leaveButton").onclick = function() { 
    location = "Main.html"; 
} 

Мой второй файл .html также имеет несколько кнопок на отдельной странице/window, доступ к которому осуществляется через document.getElementById.onclick из внешнего .js-файла.

Нет проблем, и все работает нормально, если я сохраняю отдельные файлы .js для каждого .html-файла.

Однако, когда у меня есть один и тот же .js-файл, каждая .html-страница в консоли жалуется на документ document.getElementById другого («idName»). Onclick items. Это сообщение об ошибке, которое я получаю,

Uncaught TypeError: Cannot set property 'onclick' of null 

Как решить эту проблему, используя чистый Javascript?

+1

Используйте разные сценарии для разных страниц. Если скриптам нужен элемент с определенным идентификатором, и на странице нет такого элемента, возможно, скрипт не должен быть включен в эту страницу, верно? – Danilo

ответ

0

Простейшим решением было бы попытаться добавить обработчик onclick(), если элемент существует. Что-то вроде:

if (!!document.getElementById("leaveButton")) { 
    document.getElementById("leaveButton").onclick = function() { 
    location = "Main.html"; 
    } 
} 
+0

Спасибо, Карл. Можете ли вы рассказать мне подробности о других решениях? – Joe

Смежные вопросы