javascript - perdida - poner el foco en un input html
¿Cómo borras el foco en javascript? (5)
Sé que esto no debería ser tan difícil, pero no pude encontrar la respuesta en Google.
Quiero ejecutar una parte de javascript que borrará el foco de cualquier elemento en el que esté sin saber de antemano en qué elemento está enfocado. Tiene que funcionar en Firefox 2 y en navegadores más modernos.
¿Existe una forma correcta de hacer esto?
Puede llamar a window.focus ();
pero mover o perder el foco está destinado a interferir con cualquiera que use la tecla de tabulación para desplazarse por la página.
podría escuchar el código clave 13 y renunciar al efecto si se presiona la tecla de tabulación.
Respuesta: document.activeElement
---editar----
Técnicamente: document.activeElement.blur()
---- editar 2 ----
function onElementFocused(e)
{
if (e && e.target)
document.activeElement = e.target == document ? null : e.target;
}
if (document.addEventListener)
document.addEventListener("focus", onElementFocused, true);
dummyElem.focus () donde dummyElem es un objeto oculto (p. ej., tiene un zIndex negativo)?
.focus()
y luego .blur()
algo arbitrario en su página. Como solo un elemento puede tener el foco, se transfiere a ese elemento y luego se elimina.
document.activeElement.blur();
Funciona mal en IE9: desdibuja toda la ventana del navegador si el elemento activo es el cuerpo del documento. Mejor verificar este caso:
if (document.activeElement != document.body) document.activeElement.blur();