En JavaScript, la forma de eliminar cualquier foco en el documento?

votos
2

Es decir, ¿hay una manera de forzar una falta de definición? por lo que si cualquier componente (botón, inputext, etc.) se centró será borroneada, espero que esto tiene sentido :)

como un document.blur (), gracias, necesito esto porque cada vez que el usuario pulsa F5 necesito para eliminar cualquier foco antes de que se refresca

Publicado el 09/10/2019 a las 18:51
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
3

Se puede utilizar document.activeElement.blur(), pero en mi experiencia, algunos elementos siempre va a tener el foco, incluso después de hacer eso. Por ejemplo, el cromo, el siguiente termina con bodytener el foco, incluso después de la eliminación de enfoque a partir de (por ejemplo) el input:

setInterval(() => {
    if (document.activeElement) {
        document.activeElement.blur();
    }
    console.log(document.activeElement && document.activeElement.nodeName);
}, 1000);
<input type="text" id="x">

Pero no quitar el foco de la input, tal vez eso es lo suficientemente bueno para su caso de uso.


A partir de sus comentarios que explican la situación aún más, yo tiendo a pensar que te gustaría:

if (document.activeElement && document.activeElement !== document.body) {
    document.activeElement.blur();
}
Respondida el 09/10/2019 a las 18:56
fuente por usuario

votos
1

https://developer.mozilla.org/en-US/docs/Web/API/Window/blur window.blur() debe hacer el truco.

Respondida el 09/10/2019 a las 19:03
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more