<script>
var personX = 18;
var personY = 13;

function processArrowKeys(E) {
    if (E.keyCode == 37 || E.keyCode == 38 || E.keyCode == 39 || E.keyCode==40) {
        E.preventDefault();
    }

    if (E.keyCode == 37) {
        if (currentterrain[personX - 1][personY] == 0 || currentterrain[personX - 1][personY] == 1 || currentterrain[personX - 1][personY] == 3) {
            personX--;
        }
    }
    if (E.keyCode == 39) {
        if (currentterrain[personX + 1][personY] == 0 || currentterrain[personX + 1][personY] == 1 || currentterrain[personX + 1][personY] == 3) {
            personX++;
        }
    }
    if (E.keyCode == 38) {
        for (i = 0; i < 3; i++) {
            if (currentterrain[personX][personY - 1] == 0 || currentterrain[personX][personY - 1] == 1 || currentterrain[personX][personY - 1] == 3) {
                personY--;
            }
        }
    }
}
</script>

<body onkeydown="processArrowKeys(event)">


IE调试器说它期望有一个对象并在“ handleArrowKeys(event)”上制动。

这适用于FF和Chrome

我不知道为什么会失败,但是会失败。

最佳答案

更改此行将其修复:

if(E.keyCode==37||E.keyCode==38||E.keyCode==39||E.keyCode==40){if(navigator.appName!="Microsoft Internet Explorer"){E.preventDefault();}}


IE不能与preventDefault()一起使用

关于javascript - IE中的JavaScript键降错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1185799/

10-12 15:17