Javascript DOMContentLoaded-Ereignis, das nicht in Internet Explorer ausgelöst wird

8

Ich habe den folgenden Code, um eine Funktion an das Ereignis DOMContentLoaded anzuhängen, aber die Funktion wird nie in Internet Explorer 11

aufgerufen

Code:

%Vor%     
Cedric Krause 23.07.2014, 07:13
quelle

1 Antwort

8

Es gibt verschiedene Gründe, warum es nicht ausgelöst werden kann:

  1. Es hat bereits gefeuert (bevor Sie den Event-Handler angehängt haben) und Sie haben es verpasst.
  2. Sie verwenden eine ältere Version von IE, die das DOMContentLoaded -Ereignis nicht unterstützt.
  3. Es gibt eine Art Skriptfehler vor diesen Codezeilen, so dass diese Codezeilen nicht wirklich ausgeführt werden und daher der Event-Handler nie wirklich registriert wird.
  4. Sie versuchen dies auf einem eingebetteten iFrame und haben möglicherweise nicht das korrekte Dokument für den iFrame (einige Browser können das Dokument wechseln, wenn sie eine externe Quelle laden).

Um nach Skriptfehlern zu suchen, sollten Sie die Debug-Konsole in IE öffnen (drücken Sie F12) und in der Konsole nachsehen, ob Skriptfehler gemeldet werden.

Sie können prüfen, ob document.readyState === "complete" zu sehen ist, ob es bereits gefeuert hat.

Und in Versionen von IE vor IE9, wo Sie attachEvent benötigen, unterstützt IE DOMContentLoaded nicht, so dass Ihre else-Verzweigung nicht funktioniert. In diesen älteren Versionen von IE müssten Sie verschiedene Erkennungsmethoden verwenden.

Sie können eine gut getestete, browserübergreifende JavaScript-Funktion sehen, um benachrichtigt zu werden, wenn das Dokument fertig ist: pure JavaScript entspricht jQuerys $ .ready () wie man eine Funktion aufruft, wenn die Seite / dom dafür bereit ist .

    
jfriend00 23.07.2014, 07:29
quelle