Estoy mostrando un mensaje de alert() en el evento onkeyup de un elemento de input cuando el usuario presiona la tecla Intro. Si el usuario presiona el botón Aceptar o presiona la tecla Intro para cerrar el cuadro de alerta, todo está bien. Pero cuando el usuario presiona el botón Escape para cerrar la alerta, el cuadro de texto se congela. No estaría enfocado, no se escribiría, como si estuviera deshabilitado.
¿Cómo arreglo eso?
Nota: el problema no aparecerá en jsfiddle
EDITAR:
Creo que el comportamiento es diferente si el código está alojado en sitios como jsfiddle, incluso en Run Code Snippet aquí en SO. Intente replicar el problema guardando el código en un archivo html. luego ejecutarlo localmente
ACTUALIZAR:
Estoy usando Windows 10. Descubrí que el problema solo ocurre en Google Chrome/Microsoft Edge. No sucede en Firefox.
Pude replicar el problema en una máquina virtual en la nube. Google Chrome en Windows Server 2022. Incluso usé su teclado en pantalla para asegurarme de que no sea un problema de hardware.
window.addEventListener('DOMContentLoaded', () => { document.getElementsByTagName("input")[0].onkeyup = function(event) { if (event.keyCode === 13) { alert('Press Escape Key. The textbox will freeze.'); }; } }); <input placeholder="Press Enter Here" />Intenté guardar el código en un archivo html y ejecutarlo localmente. Pero el código funciona bien. El cuadro de entrada funciona bien para mí y no se congeló al presionar el botón Escape. Incluso cuando intenté ejecutar el script en este sitio de stackoverflow, también funcionó aquí.
window.addEventListener('DOMContentLoaded', () => { document.getElementsByTagName("input")[0].onkeyup = function(event) { if (event.keyCode === 13) { alert('Press Escape Key. The textbox will freeze.'); }; } }); <input placeholder="Press Enter Here" />