Ich weiß, dass dies nicht so schwer sein sollte, aber ich konnte die Antwort bei Google nicht finden.
Ich möchte ein Stück Javascript ausführen, das den Fokus von jedem Element löscht, auf dem es sich befindet, ohne vorher zu wissen, auf welchem Element sich der Fokus befindet. Es muss sowohl mit Firefox 2 als auch mit moderneren Browsern funktionieren.
Gibt es eine gute Möglichkeit, dies zu tun?
javascript
focus
Andres
quelle
quelle
Antworten:
Antworten:
document.activeElement
---bearbeiten----
Technisch:
document.activeElement.blur()
---- edit 2 ----
quelle
document.activeElement.blur()
Weg ist der beste Weg, um diesen Effekt zu erzielen..focus()
und dann noch.blur()
etwas Beliebiges auf Ihrer Seite. Da nur ein Element den Fokus haben kann, wird es auf dieses Element übertragen und dann entfernt.quelle
overflow: clip
gestalteten Elements positionieren . Sie können jedoch auch ein Feld verwenden, das bereits auf der Seite vorhanden ist. Oder erstellen Sie eine nur für diesen Zweck und entfernen Sie sie erneut.Funktioniert in IE9 falsch - es verwischt das gesamte Browserfenster, wenn das aktive Element der Dokumentkörper ist. Besser für diesen Fall zu überprüfen:
quelle
Keine der hier angegebenen Antworten ist bei Verwendung von TypeScript vollständig korrekt, da Sie möglicherweise nicht wissen, welche Art von Element ausgewählt ist.
Dies wäre daher vorzuziehen:
Ich würde außerdem davon abraten, die in der akzeptierten Antwort angegebene Lösung zu verwenden, da die daraus resultierende Unschärfe nicht Teil der offiziellen Spezifikation ist und jederzeit brechen kann.
quelle
dummyElem.focus () wobei dummyElem ein verstecktes Objekt ist (z. B. einen negativen zIndex hat)?
quelle
Sie können window.focus () aufrufen.
Das Verschieben oder Verlieren des Fokus kann jedoch jeden stören, der die Tabulatortaste verwendet, um sich auf der Seite zurechtzufinden.
Sie können auf den Schlüsselcode 13 warten und auf den Effekt verzichten, wenn Sie die Tabulatortaste drücken.
quelle
Mit jQuery ist es einfach:
$(this).blur();
quelle
this
muss das fokussierte Element sein, während die Frage ausdrücklich besagt, dass das OP das fokussierte Element nicht im Voraus kennt.