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调试器表示它需要一个对象并在“handleArrowKeys(event)”上停止 这适用于FF和Chrome 我不知道为什么会失败,但它确实失败了。改变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) {
<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。