√Мирослав Белич
Мудрец
(19596)
4 года назад
Это из-за поведения alert. alert блокирует окно и не позволяет работать тому, что должно прогрузиться после его вызова. + элементы могут быть прогружены, но не показываться. Это зависит от браузера.
Пробуй console, вместо alert или, если обязательно нужен alert, устанавливай таймер перед запуском.
Arman HarutyunyanПрофи (622)
4 года назад
Спасибо за ответ. Проблема только с alert-ом, console.log и .innerHTML подчиняются onload-у. С timeout все работает.
Arman HarutyunyanПрофи (622)
4 года назад
Похоже проблема возникает, когда на странице мало контента. А когда добавляю какой-то img, то уже браузер успевает рисовать контент. Отдельное спасибо за ссылку
--
window.onload = function () {
alert('Hello');
}
--
По логике, alert должен произойти, когда контент уже нарисован. Но google chrome делает alert, когда страница всё ещё пустая. В IE 9 всё отлично работает.
Вопрос: это какой-то баг в chrome и у всех так? есть ли способ устранить эту проблему (ну кроме setTimeout)?