instanceof Window
Problem
Es soll geprüft werden, ob ein Objekt vom Typ Window
ist. Intuitiv würde man das mittels instanceof
prüfen. Das schlägt aber in manchen Browsern mit einem ReferenceError
fehl. Weiter heißt es dann beispielsweise "Undefined variable", "Window is not defined" oder "Can't find variable: Window".
// schlägt in den manchen Browsern mit Fehlermeldung fehl if (myVar instanceof Window) { // Code }
Lösung
Wenn man eigentlich nur wissen möchte, ob das Objekt dem aktuellen Fenster entspricht, kann man auch statt zu prüfen, ob das Objekt vom Typ Window
ist, direkt prüfen, ob das Objekt das aktuelle Fenster ist. Auf das aktuelle Fenster hat man per window
, self
und - sofern man sich nicht innerhalb einer Funktion befindet - this
Zugriff.
// Prüfen ob Objekt das aktuelle Fenster ist funktioniert if(myVar !== null && myVar === myVar.window) { // Code }
Mehr Infos
Die Überprüfung per instanceof
funktioniert nicht in allen Browsern, da nicht alle Browser das Window
-Objekt unterstützen oder dieses zumindest nicht öffentlich zugänglich machen.
- Window-Objekt auf w3.org
- Window.window im MDN