Скрипт выполняется не на всех устройствах?

Доброго времени суток,
Столкнулся с такой проблемой,
У меня на сайте есть прелоадер, но на некоторых устройствах он просто зависает и не исчезает,
подскажите в чем может быть проблема.

Ниже сам скрипт и ссылка на jsfiddle
https://jsfiddle.net/6f596zr8/
document.body.onload = function () {
    setTimeout(function () {
        var preloader = document.getElementById('preloader-page');
        if(!preloader.classList.contains('done')){
            preloader.classList.add('done');
        }
    },500);
}
  • Вопрос задан
  • 146 просмотров
Решения вопроса 2
@alexalexes
а) Вероятно, один из компонентов страницы не прогрузился до конца.
https://learn.javascript.ru/onload-ondomcontentloaded
Есть несколько разных обработчиков, и они срабатывают на разную полноту контента страницы.
На плоскости JQuery такое же разнообразие.
front-end.su/2016/02/12/load-events
б)
if(!preloader.classList.contains('done'))

Хотите большую поддержку браузерами и с легкой руки используете свежие методы: classList.
Разработчик обязан страдать, применяя решения и используя более устаканенные методы, если хочет широкий охват поддержки браузерами:
if(preloader.getAttribute('class').indexOf('done') == -1)

PS: Или не обязан, если подключить JQuery.)
Ответ написан
Комментировать
Sanasol
@Sanasol Куратор тега JavaScript
нельзя просто так взять и загуглить ошибку
document.body.onload

вы так все события убиваете на странице, и с тем же успехом наоборот кто-то может перебить ваше.

window.addEventListener("load", function(event) {
    console.log("All resources finished loading!");
  });
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы