Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как обойти ошибку? (https://javascript.ru/forum/misc/69232-kak-obojjti-oshibku.html)

akshin 07.06.2017 21:28

Как обойти ошибку?
 
Всем здравствуйте.

var playBtn = doc.getElementById('playBtn'),
        voliumBtn = doc.getElementById('voliumBtn'),
        vilHrs = voliumBtn.getElementsByTagName('hr'),
        hrs = playBtn.getElementsByTagName('hr');

    mainVideo.onloadeddata = function() {
        setTimeout(function(){
          mainVideo.currentTime = 8.3;
          mainVideo.play();
          vilHrs[0].style.transform = "translate3d(-10px, 0, 0)rotate(-45deg)";
          vilHrs[0].style.opacity = 1;
          vilHrs[1].style.transform = "translate3d(5px, 0, 0)rotate(225deg)";
          vilHrs[1].style.opacity = 1;
        }, 1000)

    };


Этот код находится в файле, который подключается в футере. всё стандартно.
Но на некоторых страницах сайта, где нет этих элементов, скрипт перестаёт работать из-за ошибки :
Uncaught TypeError: Cannot read property 'getElementsByTagName' of null
at HTMLDocument.<anonymous>

Есть ли способ подключить всё в одном файле .js и чтобы работало на всех страницах?

рони 07.06.2017 22:03

akshin,
var playBtn = doc.getElementById('playBtn');
if(!playBtn) return;
var voliumBtn = doc.getElementById('voliumBtn');
if(!voliumBtn) return;
var vilHrs = voliumBtn.getElementsByTagName('hr');
if(!vilHrs.length) return;


Часовой пояс GMT +3, время: 16:09.