mikethet: window.onload funktioniert, document.onload funktioniert nicht

Hallo,

wie das Thema schon sagt,

binde ich in mein Javscript-Block das Event onload zum Window-Objekt, ruft er die darin referenzierte Funktion init erfolgreich auf.

window.onload = init;

Mach ich das selbe mit document.onload funktioniert es nicht.

Dabei ist das Document-Objekt doch ein Kind-Element vom Window-Objekt.

Sprich die Funktion init müsste doch genauso ausgeführt werden, allerdings halt erst nachdem das Window-Objekt geladen wurde.

Sprich einen "tick" später. Wenn ich das richtig verstanden habe wird nämliche zuerst das Window-Objekt geladen. Lieg ich da richtig.

LG Mike

  1. Hi,

    window.onload = init;

    Mach ich das selbe mit document.onload funktioniert es nicht.

    Dabei ist das Document-Objekt doch ein Kind-Element vom Window-Objekt.

    Ja, so ist das halt.

    Sprich die Funktion init müsste doch genauso ausgeführt werden, allerdings halt erst nachdem das Window-Objekt geladen wurde.

    Nein, müsste sie nicht. Schlicht und einfach, weil die Browser den Event nur für das window-Objekt* feuern, nicht für document.

    * nicht nur, bspw. auch für Objekte wie Bilder – aber das ist dann was anderes als der globale load-Event.

    Sprich einen "tick" später. Wenn ich das richtig verstanden habe wird nämliche zuerst das Window-Objekt geladen. Lieg ich da richtig.

    Nein.
    Der load-Event wird nicht „nach unten durchgereicht“.

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    1. Ok, verstehe.

      Danke euch!

  2. Ich würde das load-Event sowieso nur als Fallback gebrauchen, in den meisten Fällen ist DOMContentLoaded die bessere Option.