Ich habe auf dem window.document Objekt, um einige der Forschung getan, sicher einer meiner JavaScript-Lösungen zu machen, ist zuverlässig. Gibt es jemals einen Fall, wenn das Objekt window.document null oder undefiniert ist?
Zur Diskussion hier ist ein nicht relevanter Beispielcode. Gibt es Situationen, in denen dieser Codeabschnitt fehlschlägt (aka, werfen Sie eine Ausnahme)?
%Vor%Gibt es jemals einen Fall, wenn das Objekt window.document null oder undefiniert ist?
Ja, für JavaScript-Code, der sich nicht in einem Dokument befindet (z. B. node.js). Aber solch ein Code kann auch kein Fensterobjekt haben (obwohl es ein globales Objekt haben wird).
Für Code in HTML-Dokumenten in Benutzeragenten, die mit dem W3C-DOM kompatibel sind, nein.
%Vor%Es wird fehlschlagen wo:
window object
oder window.document
-Objekt Um sicher zu sein, dass Code in einer Vielzahl von Hosts funktioniert, können Sie Folgendes tun:
%Vor%was nicht viel zu schreiben ist und wahrscheinlich nur einmal ausgeführt werden muss.
Alternativen:
%Vor%und
%Vor% Ich denke, das Dokument ist immer definiert, weil der ganze Browser zeigt, dass es ein HTML-Dokument ist, sogar site is not available
. Mehr, document
ist schreibgeschützte Eigenschaft
Wenn Sie die Tatsache ignorieren, dass JavaScript neben Webbrowsern / Benutzeragenten auch andere Orte ausführt, kann Ihr pageLoaded-Test auf iframes fehlschlagen (ungeprüft, aber ich weiß, dass sie seltsam werden).
Es kann auch eine Frage darüber geben, was "page loaded" bedeutet. Versuchen Sie zu sehen, ob das DOM gerendert wurde und die Elemente manipulierbar sind? Oder überprüfen Sie, ob das Laden der Seite tatsächlich abgeschlossen ist, was auch das Laden aller anderen Elemente, z. B. Grafiken, einschließt.
Diese Diskussion kann nützlich sein: Wie kann überprüft werden, ob DOM ohne ein Framework bereit ist?
Tags und Links javascript dom