Как выполнить функцию, когда страница полностью загружена?

Мне нужно выполнить код JavaScript, когда страница полностью загружена. Это включает в себя такие вещи, как изображения.

Я знаю, что вы можете проверить, готов ли DOM, но я не знаю, совпадает ли это с моментом полной загрузки страницы.

 Mads Skjern24 дек. 2014 г., 17:19
Итак, как вы проверяете, готов ли DOM?

Ответы на вопрос(11)

If you need to use many onload use $(window).load instead (jQuery):
$(window).load(function() {
    //code
});

Try this it Only Run After Entire Page Has Loaded

По Javascript

window.onload = function(){
    // code goes here
};

По Jquery

$(window).bind("load", function() {
    // code goes here
});
 11 нояб. 2015 г., 21:51
$(window) заставляет меня думать, что это будет JQuery - верно? Или я немного запутался в синтаксисе JavaScript? (Я новичок в JS).
 21 февр. 2016 г., 12:01
Да. Это JQuery.
 25 окт. 2016 г., 22:19
ваш документ (более или менее просто проанализированный HTML), другой (& quot; загрузка & quot;)everything в том числе изображения и стили. Зависит от того, что вам нужно.
 03 июн. 2016 г., 17:22
почему бы просто не использовать$(document).ready(); когда jQuery доступен?

window.onload, но вы можете заметить, что последние браузеры не работаютwindow.onload когда вы используете кнопки истории назад / вперед.

Некоторые людипредложить странные искажения, чтобы обойти эту проблему, но на самом деле, если вы просто сделаетеwindow.onunload обработчик (даже тот, который ничего не делает), это поведение кэширования будет отключено вall браузеры.MDC документирует эту «функцию» довольно хорошо, но по некоторым причинам все еще есть люди, использующиеsetInterval и другие странные хаки.

В некоторых версиях Opera есть ошибка, которую можно обойти, добавив следующее где-то на вашей странице:

<script>history.navigationMode = 'compatible';</script>

Если вы просто пытаетесь получить функцию javascript, вызываемую один раз для каждого просмотра (и не обязательно после завершения загрузки DOM), вы можете сделать что-то вроде этого:

<img src="javascript:location.href='javascript:yourFunction();';">

Например, я использую этот трюк для предварительной загрузки очень большого файла в кэш на экране загрузки:

<img src="bigfile"
onload="this.location.href='javascript:location.href=\'javascript:doredir();\';';doredir();">
 26 июл. 2010 г., 22:44

onLoad() событие, будет ждать загрузки страницы перед выполнением.

<body onload="somecode();" >

Если вы используете функцию готовности документа структуры jQuery, код будет загружен сразу после загрузки DOM и до загрузки содержимого страницы:

$(document).ready(function() {
    // jQuery code goes here
});
Решение Вопроса

как появился DOM ready, и DOM ready был фактически создан именно по той причине, что onload ждала изображения.

window.onload = function () { alert("It's loaded!") }
 11 нояб. 2014 г., 19:34
в том числе кадры?
 22 июн. 2011 г., 11:21
так что, чтобы уточнить (если можно), по сравнению с DOM готов,window.onload называется когдаevery компонент страницы / ресурс (т.е. * включая * изображения). Я прав?
 05 сент. 2017 г., 15:21
Лучший способ был быaddEventListener("load", function(){& # X2026;}) вместо перезаписиonload имущество.
 23 окт. 2015 г., 12:28
скрипт не загружен полностью
 22 июн. 2011 г., 20:49
@BreakPhreak: да :)onload ждет всех ресурсов, которые являются частью документа. Это, конечно, исключает динамически создаваемые запросы, которые не являются частью самого документа, например, запрос AJAX.

который теперь широко поддерживается.

document.addEventListener("DOMContentLoaded", function(event){
  // your code here
});

Больше информации:https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded

 25 дек. 2017 г., 20:25
Этот ответ в точности противоположен тому, что было задано в вопросе.
 02 янв. 2018 г., 19:08
Действительно, событие DOMContentLoaded запускается, когда все содержимое DOM было загружено до того, как оно загрузило все свои зависимости. Так как пользователи в ветке ответов ссылаются$.ready Я думал, что это внесло хороший вклад. Btw. Я бы использовалaddEventListener-метод также дляload событие, хотя, поскольку оно позволяет вам иметь несколько обратных вызовов:window.addEventListener("load", function(event){ // your code here });

The onload property of the GlobalEventHandlers mixin is an event handler for the load event of a Window, XMLHttpRequest, element, etc., which fires when the resource has loaded.

Так что в основном javascript уже имеет метод onload для окна, которое выполняется, какая страница полностью загружена, включая изображения ...

Вы можете сделать что-то:

var spinner = true;

window.onload = function() {
  //whatever you like to do now, for example hide the spinner in this case
  spinner = false;
};

когда все загружено, включая изображения и т. д.

Вы хотели бы проверить состояние готовности DOM, если хотите, чтобы ваш js-код выполнялся как можно раньше, но вам все равно нужен доступ к элементам DOM.

document.onreadystatechange = function () {
  if (document.readyState == "interactive") {
    initApplication();
  }
}

визитhttps://developer.mozilla.org/en-US/docs/DOM/document.readyState Больше подробностей

 05 мар. 2019 г., 16:55
Да, это полезно. Большое спасибо ~

PrototypeJS:

Event.observe(window, 'load', function(event) {
    // Do stuff
});

window.onloadпоскольку документы указывают, что он не запущен, пока не будет готов DOM, и не загружены ВСЕ другие ресурсы на странице (изображения и т. д.).

 23 июн. 2009 г., 18:53
может быть, это просто скрытое изображение, которое делает что-то важное на сервере, такое как отслеживание попадания или что-то в БД?
 Ben Shelock23 июн. 2009 г., 18:02
Ах, блестящий. Ну, я сделал это. Последнее изображение на странице выглядит так: & lt; img src = & quot; imdbupdate.php? Update = ajax & quot; стиль = & Quot; Дисплей: скрытый & Quot; onload = "window.location =" movies.php? do = admincp "& quot; / & GT; Однако он не перенаправляет меня
 23 июн. 2009 г., 18:06
...какие? Вы хотите перенаправить после загрузки изображения?
 23 июн. 2009 г., 18:07
Я не уверен, почему вы этого хотите, но причина, по которой он не перенаправляет, может заключаться в том, что он отображает: скрытый, и, следовательно, браузер не пытается загрузить его, так как он не будет показан.
 23 июн. 2009 г., 20:04
Я могу получить это, но перенаправление после этого не имеет смысла для меня. Зачем вообще нужна страница, если вы не хотите, чтобы пользователь проводил на ней время? И если цель состоит в том, чтобы перенаправить при загрузке, то почему бы просто не использовать событие window.onload, поскольку в целом это более чистая реализация?

Ваш ответ на вопрос