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".
1 2 3 4 | // schlägt in den manchen Browsern mit Fehlermeldung fehlif (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.
1 2 3 4 | // Prüfen ob Objekt das aktuelle Fenster ist funktioniertif(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