Window: load-Ereignis
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Das load-Ereignis wird ausgelöst, wenn die gesamte Seite geladen wurde, einschließlich aller benötigten Ressourcen wie Stylesheets, Skripten (auch asynchrone, verzögert geladene und Modulskripte), iframes und Bilder. Ausgenommen sind Ressourcen, die verzögert geladen werden.
Im Gegensatz dazu wird DOMContentLoaded ausgelöst, sobald das DOM der Seite geladen wurde, ohne darauf zu warten, dass alle Ressourcen vollständig geladen sind.
Dieses Ereignis kann nicht abgebrochen werden und wird nicht nach oben weitergereicht.
Hinweis:
Ereignisse mit dem Namen load werden nicht an Window weitergegeben, selbst wenn bubbles mit true initialisiert wurde. Damit ein load-Ereignis auf window erfasst werden kann, muss es direkt auf window ausgelöst werden.
Hinweis:
Das load-Ereignis, das beim Laden des Hauptdokuments ausgelöst wird, wird auf window ausgelöst, hat jedoch zwei veränderte Eigenschaften: target ist document und path ist undefined. Diese beiden Eigenschaften wurden aus Gründen der Abwärtskompatibilität verändert.
Damit ein Skript nicht ausgeführt wird, bevor das DOM, das es verändert, vollständig aufgebaut ist, können Sie es am Ende des Dokumentkörpers unmittelbar vor dem schließenden </body>-Tag platzieren, ohne es in einen Event-Listener einzubinden. In der Regel sollten Sie das load-Ereignis nur verwenden, um auf das Laden externer Ressourcen wie Bilder oder verzögert geladene Skripte zu warten.
Syntax
Verwenden Sie den Ereignisnamen in addEventListener():
addEventListener("load", (event) => { })
Alternativ können Sie die Event-Handler-Eigenschaft der Schnittstelle zuweisen:
onload = (event) => { }
Ereignistyp
Ein generisches Event.
Beispiele
Geben Sie eine Meldung aus, wenn die Seite vollständig geladen ist:
window.addEventListener("load", (event) => {
console.log("page is fully loaded");
});
Dasselbe mit der onload-Event-Handler-Eigenschaft. Beachten Sie jedoch, dass dadurch gegebenenfalls andere mit onload hinzugefügte Event-Listener ersetzt werden:
window.onload = (event) => {
console.log("page is fully loaded");
};
Interaktives Beispiel
HTML
<div class="controls">
<button id="reload" type="button">Reload</button>
</div>
<div class="event-log">
<label for="eventLog">Event log:</label>
<textarea
readonly
class="event-log-contents"
rows="8"
cols="30"
id="eventLog"></textarea>
</div>
JavaScript
const log = document.querySelector(".event-log-contents");
const reload = document.querySelector("#reload");
reload.addEventListener("click", () => {
log.textContent = "";
setTimeout(() => {
window.location.reload(true);
}, 200);
});
window.addEventListener("load", (event) => {
log.textContent += "load\n";
});
document.addEventListener("readystatechange", (event) => {
log.textContent += `readystate: ${document.readyState}\n`;
});
document.addEventListener("DOMContentLoaded", (event) => {
log.textContent += `DOMContentLoaded\n`;
});
Ergebnis
Spezifikationen
| Spezifikation |
|---|
| UI Events> # event-type-load> |
| HTML> # delay-the-load-event> |
Browser-Kompatibilität
Siehe auch
- Die readyState-API von Document
- Verwandte Ereignisse: