Das Konstrukt - if(this.blur)this.blur() -
Max Kaba
- javascript
Hy,
ich verwende seit Urzeiten mit großer Selbstverständlichkeit die Codezeile
onfocus="if(this.blur)this.blur()" innerhalb von Verweisen,
um die gepunktete Linie bei "onclick" (bzw. "onfocus") auf einen solchen Verweis zu eliminieren. Ich kann aber - trotz intensiver Grübelei - die if-Abfrage nicht in Klartext übersetzen ...
<a href="#" onfocus="if(this.blur)this.blur()">Link</a>
Meine Frage also: was passiert in dem Moment, wo der Link den Focus erhält ?
Mit freundlichen Grüßen
hi,
ich verwende seit Urzeiten mit großer Selbstverständlichkeit die Codezeile
onfocus="if(this.blur)this.blur()" innerhalb von Verweisen,
das ist schlecht, da du so das navigieren per tastatur verhinderst.
Meine Frage also: was passiert in dem Moment, wo der Link den Focus erhält ?
da löst der eventhandler onFocus natürlich aus.
dann wird geprüft, ob für das aktuelle objekt (this kann immer verwendet werden, um auf dieses zuzugreifen) die methode blur() vorhanden ist; und wenn ja, wird sie ausgeführt - der focus also wieder vom link entfernt.
die prüfung erfolgt, damit browser, die die methode blur() nicht kennen, hier keine fehlermeldung werfen.
aber wie gesagt, ist eigentlich unfug, das ding zu verwenden.
gruß,
wahsaga
Hallo Max,
ganz einfach: mit if(this.blur) wird geprüft, ob die Methode this.blur existiert und wenn ja, dann wird sie ausgeführt.
Unter Javascript kann man so prüfen, ob Objekte bzw. Methoden existieren. Dieses ist wichtig, da der Programmierer nicht weiß, welche JS-Version die Browser seiner Besucher unterstützen.
Gruß, Jürgen