Ich muss JavaScript-Code ausführen, wenn die Seite vollständig geladen ist. Dies schließt Dinge wie Bilder ein.
Ich weiß, dass Sie überprüfen können, ob das DOM bereit ist, aber ich weiß nicht, ob dies mit dem vollständigen Laden der Seite identisch ist.
javascript
Ben Shelock
quelle
quelle
Antworten:
Das heißt
load
. Es kam waaaaay, bevor DOM ready fertig war, und DOM ready wurde tatsächlich aus genau dem Grund erstellt, derload
auf Bilder wartete.quelle
window.onload
aufgerufen, wenn jede Seitenkomponente / Ressource (dh * einschließlich * Bilder). Habe ich recht?onload
wartet auf alle Ressourcen, die Teil des Dokuments sind. Dies schließt natürlich dynamisch erstellte Anforderungen aus, die nicht Teil des Dokuments selbst sind, z. B. eine AJAX-Anforderung.addEventListener("load", function(){
…})
anstatt dieonload
Immobilie zu überschreiben .Normalerweise können Sie verwenden
window.onload
, aber Sie werden möglicherweise feststellen, dass aktuelle Browser nicht ausgelöst werden,window.onload
wenn Sie die Schaltflächen für den Vor- / Zurück-Verlauf verwenden.Einige Leute schlagen seltsame Verzerrungen vor, um dieses Problem zu umgehen. Wenn Sie jedoch nur einen
window.onunload
Handler erstellen (auch einen, der nichts tut), wird dieses Caching-Verhalten in allen Browsern deaktiviert . Das MDC dokumentiert diese "Funktion" ziemlich gut, aber aus irgendeinem Grund verwenden immer noch LeutesetInterval
und andere seltsame Hacks.Einige Versionen von Opera haben einen Fehler, der behoben werden kann, indem Sie irgendwo auf Ihrer Seite Folgendes hinzufügen:
Wenn Sie nur versuchen, eine Javascript-Funktion zu erhalten, die einmal pro Ansicht aufgerufen wird (und nicht unbedingt, nachdem das DOM vollständig geladen wurde), können Sie Folgendes tun:
Mit diesem Trick lade ich beispielsweise eine sehr große Datei auf einem Ladebildschirm in den Cache vor:
quelle
Der Vollständigkeit halber möchten Sie es möglicherweise auch an DOMContentLoaded binden, das jetzt weitgehend unterstützt wird
Weitere Informationen: https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded
quelle
$.ready
ich, dass dies einen guten Beitrag geleistet hat. Übrigens. Ich würde dieaddEventListener
-method jedoch auch für dasload
Ereignis verwenden, da Sie mehrere Rückrufe haben können:window.addEventListener("load", function(event){ // your code here });
Versuchen Sie dies nur, nachdem die gesamte Seite geladen wurde
Mit Javascript
Von Jquery
quelle
$(window)
lässt mich denken, das wäre jquery - richtig? Oder bin ich mit einer Javascript-Syntax verwirrt? (Ich bin neu bei JS).$(document).ready();
wenn jQuery verfügbar ist?Versuchen Sie diesen Code
Weitere Informationen finden Sie unter https://developer.mozilla.org/en-US/docs/DOM/document.readyState
quelle
"interactive"
ist nicht voll geladen."complete"
ist voll geladenDas Fenster.onload-Ereignis wird ausgelöst, wenn alles geladen ist, einschließlich Bilder usw.
Sie möchten den DOM-Bereitschaftsstatus überprüfen, wenn Ihr js-Code so früh wie möglich ausgeführt werden soll, Sie jedoch weiterhin auf DOM-Elemente zugreifen müssen.
quelle
Javascript, das das
onLoad()
Ereignis verwendet, wartet vor dem Ausführen auf das Laden der Seite.Wenn Sie die Dokumentbereitschaftsfunktion des jQuery-Frameworks verwenden, wird der Code geladen, sobald das DOM geladen wird und bevor der Seiteninhalt geladen wird:
quelle
Möglicherweise möchten Sie window.onload verwenden , da die Dokumente angeben, dass es erst ausgelöst wird, wenn sowohl das DOM bereit ist als auch ALLE anderen Elemente auf der Seite (Bilder usw.) geladen sind.
quelle
Und hier ist eine Möglichkeit, dies mit PrototypeJS zu tun :
quelle
In modernen Browsern mit modernem Javascript (> = 2015) können Sie
type="module"
Ihrem Skript-Tag hinzufügen , und alles in diesem Skript wird ausgeführt, nachdem die ganze Seite geladen wurde. z.B:Auch ältere Browser verstehen
nomodule
Attribute. Etwas wie das:Weitere Informationen finden Sie unter javascript.info .
quelle
Wenn Sie stattdessen viele
onload
verwenden müssen$(window).load
(jQuery):quelle
Im Grunde genommen hat Javascript bereits eine Onload-Methode im Fenster, die ausgeführt wird, welche Seite einschließlich Bilder vollständig geladen ist ...
Sie können etwas tun:
quelle
Update 2019: Dies war die Antwort, die für mich funktioniert hat. Da ich mehrere Ajax-Anforderungen benötigte, um zuerst Daten auszulösen und zurückzugeben, um die Listenelemente zu zählen.
quelle