Po pełnym załadowaniu strony muszę wykonać kod JavaScript. Dotyczy to np. Obrazów.
Wiem, że możesz sprawdzić, czy DOM jest gotowy, ale nie wiem, czy jest tak samo, jak po pełnym załadowaniu strony.
javascript
Ben Shelock
źródło
źródło
Odpowiedzi:
To się nazywa
load
. Nadeszła chwila, zanim DOM gotowy był na miejscu, a DOM gotowy został stworzony właśnie z tego samego powodu, któryload
czekał na obrazy.źródło
window.onload
jest wywoływany, gdy każdy element strony / zasób (tj. * w tym * obrazy). Czy mam rację?onload
czeka na wszystkie zasoby, które są częścią dokumentu. Wyklucza to oczywiście żądania tworzone dynamicznie, które nie są częścią samego dokumentu, np. Żądanie AJAX.addEventListener("load", function(){
…})
zamiast nadpisywaniaonload
właściwości.Zwykle możesz z niego korzystać
window.onload
, ale możesz zauważyć, że najnowsze przeglądarki nie uruchamiają się,window.onload
gdy używasz przycisków historii wstecz / do przodu.Niektóre osoby sugerują dziwne zniekształcenia, aby obejść ten problem, ale tak naprawdę, jeśli
window.onunload
utworzysz moduł obsługi (nawet taki, który nic nie robi), to zachowanie buforowania zostanie wyłączone we wszystkich przeglądarkach. MDC dokumentuje tę „funkcję” całkiem dobrze, ale z jakiegoś powodu nadal istnieją osoby korzystającesetInterval
i inne dziwne hacki.Niektóre wersje Opery zawierają błąd, który można obejść, dodając następujące elementy na stronie:
Jeśli po prostu próbujesz uzyskać funkcję javascript o nazwie raz na widok (i niekoniecznie po zakończeniu ładowania DOM), możesz zrobić coś takiego:
Na przykład używam tej sztuczki, aby wstępnie załadować bardzo duży plik do pamięci podręcznej na ekranie ładowania:
źródło
Ze względu na kompletność możesz również powiązać go z DOMContentLoaded, który jest obecnie szeroko obsługiwany
Więcej informacji: https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded
źródło
$.ready
których się odnosiłem, uważam, że ma to duży wkład. Btw. Chciałbym użyćaddEventListener
-method również naload
razie jednak, jak to pozwala mieć wiele wywołań zwrotnych:window.addEventListener("load", function(event){ // your code here });
Spróbuj, to działa tylko po załadowaniu całej strony
Przez Javascript
Przez Jquery
źródło
$(window)
sprawia, że myślę, że to byłaby jquery - prawda? A może mylę się w składni javascript? (Jestem nowy w JS).$(document).ready();
gdy jQuery jest dostępny?Wypróbuj ten kod
odwiedź https://developer.mozilla.org/en-US/docs/DOM/document.readyState, aby uzyskać więcej informacji
źródło
"interactive"
nie jest w pełni załadowany."complete"
jest w pełni załadowanyZdarzenie window.onload zostanie uruchomione, gdy wszystko zostanie załadowane, w tym obrazy itp.
Chciałbyś sprawdzić stan gotowości DOM, jeśli chcesz, aby kod js był wykonywany tak wcześnie, jak to możliwe, ale nadal potrzebujesz dostępu do elementów DOM.
źródło
JavaScript korzystający ze
onLoad()
zdarzenia poczeka na załadowanie strony przed wykonaniem.Jeśli używasz funkcji gotowości dokumentów środowiska jQuery, kod zostanie załadowany, gdy tylko DOM zostanie załadowany, a przed załadowaniem zawartości strony:
źródło
Możesz użyć window.onload , ponieważ dokumenty wskazują, że nie został uruchomiony, dopóki DOM nie będzie gotowy, a WSZYSTKIE inne zasoby na stronie (obrazy itp.) Zostaną załadowane.
źródło
A oto jak to zrobić za pomocą PrototypeJS :
źródło
W nowoczesnych przeglądarkach z nowoczesnym javascript (> = 2015) możesz dodać
type="module"
do tagu skryptu, a wszystko w tym skrypcie zostanie wykonane po załadowaniu całej strony. na przykład:również starsze przeglądarki zrozumieją
nomodule
atrybut. Coś takiego:Aby uzyskać więcej informacji, odwiedź javascript.info .
źródło
Jeśli trzeba użyć wielu
onload
użycie$(window).load
zamiast (jQuery):źródło
Więc w zasadzie javascript ma już metodę onload na oknie, która wykonuje, która strona jest w pełni załadowana, w tym obrazy ...
Możesz coś zrobić:
źródło
Aktualizacja 2019: To była odpowiedź, która zadziałała dla mnie. Ponieważ potrzebowałem wielu żądań ajax, aby najpierw odpalić i zwrócić dane, aby policzyć elementy listy.
źródło