html 在FireFox上为日语IME触发JavaScript按键Enter,但在Edge上不触发

o2g1uqev  于 2022-12-02  发布在  Java
关注(0)|答案(1)|浏览(126)

我试过用the W3 Schools example code来处理输入文本的回车键。我从那个网站的页面上复制了源代码并粘贴在下面。
问题是,在FireFox上,如果我按回车键完成日语输入模式,代码也会被触发。在Edge上,它没有。这是FireFox的bug,还是只是一个不同的行为?无论如何,我如何才能绕过这个问题?

var input = document.getElementById("myInput");

// Execute a function when the user presses a key on the keyboard
input.addEventListener("keypress", function(event) {
  // If the user presses the "Enter" key on the keyboard
  if (event.key === "Enter") {
    // Cancel the default action, if needed
    event.preventDefault();
    // Trigger the button element with a click
    document.getElementById("myBtn").click();
  }
});
rsaldnfx

rsaldnfx1#

您应该使用KeyDown事件KeyPress报告来自键盘每个键码键盘上某些键不仅输入一个键码,而且输入多个键码KeyDown事件应该将来自一个实际按下键所有键码打包到一个事件中
KeyPress旨在执行更低级别的方法

相关问题