Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Javascript. alert() в window.onload не работает как положено (Google Chrome).

Arman Harutyunyan Профи (622), закрыт 4 года назад
Скрипт:
--
window.onload = function () {
alert('Hello');
}
--
По логике, alert должен произойти, когда контент уже нарисован. Но google chrome делает alert, когда страница всё ещё пустая. В IE 9 всё отлично работает.
Вопрос: это какой-то баг в chrome и у всех так? есть ли способ устранить эту проблему (ну кроме setTimeout)?
Лучший ответ
√Мирослав Белич Мудрец (19596) 4 года назад
Это из-за поведения alert. alert блокирует окно и не позволяет работать тому, что должно прогрузиться после его вызова. + элементы могут быть прогружены, но не показываться. Это зависит от браузера.
Пробуй console, вместо alert или, если обязательно нужен alert, устанавливай таймер перед запуском.
Arman HarutyunyanПрофи (622) 4 года назад
Спасибо за ответ. Проблема только с alert-ом, console.log и .innerHTML подчиняются onload-у. С timeout все работает.
√Мирослав Белич Мудрец (19596) Ուրախ էի օգնել։
Arman HarutyunyanПрофи (622) 4 года назад
Похоже проблема возникает, когда на странице мало контента. А когда добавляю какой-то img, то уже браузер успевает рисовать контент. Отдельное спасибо за ссылку
Остальные ответы
Petr Muhurov Мыслитель (5922) 4 года назад
learn.javascript.ru/onload-ondomcontentloaded
Arman HarutyunyanПрофи (622) 4 года назад
Some text


С iframe и картинкой сработал. Но мне нужен h1, или p.
Js не менял. Удалил iframe и картинку, теперь не работает.
Arman Harutyunyan Профи (622) "Some text "
Ярослав Искусственный Интеллект (107837) 4 года назад
Ты почитай про событие load: когда оно возникает, и может ли возникать несколько раз в течение "жизни" страницы. Сразу отвалятся подобные вопросы.
Похожие вопросы