javascript - onkeydown 和 onkeyup 事件在 Internet Explorer 8 上不起作用

标签 javascript internet-explorer-8 onkeydown onkeyup

我的代码在 IE9/IE10、FF、Chrome 和 Opera 上运行没有问题,但在旧版 Internet Explorer 上没有处理键盘输入。

我有以下用于处理事件的代码。它应该只在按下新按钮时触发。

lastEvent = void 0;

heldKeys = {};

window.onkeydown = function(event) {
if (lastEvent && lastEvent.keyCode === event.keyCode) {
  return;
}
lastEvent = event;
heldKeys[event.keyCode] = true;
switch (event.which) {
  case 80:
    return myamp.userInput("positiv");
  case 81:
    return myamp.userInput("negativ");
}
};

window.onkeyup = function(event) {
  lastEvent = null;
  return delete heldKeys[event.keyCode];
};

最佳答案

您需要绑定(bind)到文档,而不是窗口。

window.onkeyup = function(event) {
window.onkeydown = function(event) {

需要

document.onkeyup = function(event) {
document.onkeydown = function(event) {

关于javascript - onkeydown 和 onkeyup 事件在 Internet Explorer 8 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16399150/

相关文章:

javascript - Android WebView shouldOverrideUrlLoading,我应该调用 super 方法还是只返回 false

javascript - 这段 JavaScript 清除函数代码有什么问题?

android - 如何将音量键事件传递给DialogFragment

android - onKeyListener 不适用于软键盘(Android)

javascript - 如何创建圆形内容 slider ?

javascript - JQuery 无法从动态创建的字段中获取输入值

javascript - live() 更改在 IE8 上的 jquery 1.4.2 中不起作用

java - Android setOnKeyListener导致ANR(Application Not Responding)提示

html - Internet Explorer z-index 问题

javascript - 关于某些 IE8 浏览器中 HTML 表单中的 ID 和名称属性的 javascript document.forms 的问题