Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IE中的JavaScript键关闭错误 var personX=18; var personY=13; 功能处理箭头键(E){ 如果(E.keyCode==37 | | E.keyCode==38 | | E.keyCode==39 | | E.keyCode==40){ E.预防违约(); } 如果(E.keyCode==37){ 如果(当前地形[personX-1][personY]==0 | | |当前地形[personX-1][personY]==1 | | |当前地形[personX-1][personY]==3){ 人--; } } 如果(E.keyCode==39){ 如果(当前地形[personX+1][personY]==0 | |当前地形[personX+1][personY]==1 | |当前地形[personX+1][personY]==3){ personX++; } } 如果(E.keyCode==38){ 对于(i=0;i_Javascript_Events - Fatal编程技术网

IE中的JavaScript键关闭错误 var personX=18; var personY=13; 功能处理箭头键(E){ 如果(E.keyCode==37 | | E.keyCode==38 | | E.keyCode==39 | | E.keyCode==40){ E.预防违约(); } 如果(E.keyCode==37){ 如果(当前地形[personX-1][personY]==0 | | |当前地形[personX-1][personY]==1 | | |当前地形[personX-1][personY]==3){ 人--; } } 如果(E.keyCode==39){ 如果(当前地形[personX+1][personY]==0 | |当前地形[personX+1][personY]==1 | |当前地形[personX+1][personY]==3){ personX++; } } 如果(E.keyCode==38){ 对于(i=0;i

IE中的JavaScript键关闭错误 var personX=18; var personY=13; 功能处理箭头键(E){ 如果(E.keyCode==37 | | E.keyCode==38 | | E.keyCode==39 | | E.keyCode==40){ E.预防违约(); } 如果(E.keyCode==37){ 如果(当前地形[personX-1][personY]==0 | | |当前地形[personX-1][personY]==1 | | |当前地形[personX-1][personY]==3){ 人--; } } 如果(E.keyCode==39){ 如果(当前地形[personX+1][personY]==0 | |当前地形[personX+1][personY]==1 | |当前地形[personX+1][personY]==3){ personX++; } } 如果(E.keyCode==38){ 对于(i=0;i,javascript,events,Javascript,Events,IE调试器表示它需要一个对象并在“handleArrowKeys(event)”上停止 这适用于FF和Chrome 我不知道为什么会失败,但它确实失败了。改变 <script> var personX = 18; var personY = 13; function processArrowKeys(E) { if (E.keyCode == 37 || E.keyCode == 38 || E.keyCode == 39 || E.keyCode==40) {

IE调试器表示它需要一个对象并在“handleArrowKeys(event)”上停止

这适用于FF和Chrome

我不知道为什么会失败,但它确实失败了。

改变

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


不确定它在firefox和chrome中如何工作,因为没有handleArrowKeys功能。

更改

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


不确定它在firefox和chrome中如何工作,因为没有handleArrowKeys功能。

请尝试以下操作:

<body onkeydown="processArrowKeys(event)">
请尝试以下操作:

<body onkeydown="processArrowKeys(event)">
这应该是:

/* ... */
function processArrowKeys(E) {
    if (!E) E = window.event;
/* ... */
onload=function(){
var body=document.body,
personX=18,
personY=13;
body.onkeydown=函数(E){
E=E | | window.event;
如果(E.keyCode==37 | | E.keyCode==38 | | E.keyCode==39 | | E.keyCode==40){
如果(如默认){
E.预防违约();
}否则{
E.返回值=假;
}
}
如果(E.keyCode==37){
如果(当前地形[personX-1][personY]==0 | | |当前地形[personX-1][personY]==1 | | |当前地形[personX-1][personY]==3){
人--;
}
}
如果(E.keyCode==39){
如果(当前地形[personX+1][personY]==0 | |当前地形[personX+1][personY]==1 | |当前地形[personX+1][personY]==3){
personX++;
}
}
如果(E.keyCode==38){
对于(i=0;i<3;i++){
if(currentterrain[personX][personY-1]==0 | | | currentterrain[personX][personY-1]==1 | | | currentterrain[personX][personY-1]==3){
人格--;
}
}
}
}
}
这应该可以解决:

/* ... */
function processArrowKeys(E) {
    if (!E) E = window.event;
/* ... */
onload=function(){
var body=document.body,
personX=18,
personY=13;
body.onkeydown=函数(E){
E=E | | window.event;
如果(E.keyCode==37 | | E.keyCode==38 | | E.keyCode==39 | | E.keyCode==40){
如果(如默认){
E.预防违约();
}否则{
E.返回值=假;
}
}
如果(E.keyCode==37){
如果(当前地形[personX-1][personY]==0 | | |当前地形[personX-1][personY]==1 | | |当前地形[personX-1][personY]==3){
人--;
}
}
如果(E.keyCode==39){
如果(当前地形[personX+1][personY]==0 | |当前地形[personX+1][personY]==1 | |当前地形[personX+1][personY]==3){
personX++;
}
}
如果(E.keyCode==38){
对于(i=0;i<3;i++){
if(currentterrain[personX][personY-1]==0 | | | currentterrain[personX][personY-1]==1 | | | currentterrain[personX][personY-1]==3){
人格--;
}
}
}
}
}

更改此行修复了它:

 onload = function() {
    var body = document.body,
    personX = 18,
    personY = 13;

    body.onkeydown = function( E ) {
    E = E || window.event;

    if (E.keyCode == 37 || E.keyCode == 38 || E.keyCode == 39 || E.keyCode==40) {
        if ( E.preventDefault ) {
        E.preventDefault();
        } else {
        E.returnValue = false;
        }
    }

    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--;
        }
        }
    }

    }
}

IE不能使用
preventDefault()

更改此行修复了它:

 onload = function() {
    var body = document.body,
    personX = 18,
    personY = 13;

    body.onkeydown = function( E ) {
    E = E || window.event;

    if (E.keyCode == 37 || E.keyCode == 38 || E.keyCode == 39 || E.keyCode==40) {
        if ( E.preventDefault ) {
        E.preventDefault();
        } else {
        E.returnValue = false;
        }
    }

    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--;
        }
        }
    }

    }
}

IE不能使用
preventDefault()

将其放在anywhere中。主要的问题是您试图调用IE中不存在的preventDefault,event.returnValue=false是另一种选择。请将其放在anywhere中。主要的问题是您试图调用IE中不存在的preventDefault,event.returnValue=false是另一种选择。这就是我在重新编写的代码示例中基本上所做的。IE支持returnValue=false。这就是我在重新编写的代码示例中基本上所做的。IE支持returnValue=false。