在Chrome/Edge上的Windows上,按下报警消息框上的Escape键后,输入框将冻结



当用户按下回车键时,我在input元素的onkeyup事件中显示alert()消息。如果用户按下Ok按钮或按下Enter键关闭警报框,则一切正常。但当用户按下Escape按钮关闭警报时,文本框会冻结。它不会被聚焦,不会被键入,就好像它被禁用了一样。

我该怎么解决?

注意:这个问题不会出现在jsfiddle 中

编辑:

我相信,如果代码托管在像jsfiddle这样的网站上,即使是SO中的Run code Snippet中,行为也会有所不同。请尝试通过将代码实际保存在html文件中来复制问题。然后在本地运行

更新:

我正在使用Windows 10。我发现这个问题只发生在谷歌浏览器/Microsoft Edge上。在Firefox上不会发生这种情况。

我能够在云中的虚拟机中复制这个问题。Windows Server 2022上的谷歌Chrome。我甚至使用了它的屏幕键盘来确保它不是硬件问题。

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" />

我尝试将代码保存在html文件中并在本地运行。但代码运行良好。输入框对我来说很好,按下Escape按钮时没有冻结。即使当我尝试在这个stackoverflow网站上运行脚本时,它在这里也起到了作用。

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" />

最新更新