为什么onkeydown在IE上没有正常工作?

时间:2010-03-26 12:51:11

标签: function internet-explorer-7 events google-chrome onkeydown

function checkEnter(event) {
    var charcode;
    if (event && event.which) {
        charcode = event.which;
        alert("Case 1. event.which is " + charcode);
    }

    else if (event && !event.which) {
        charcode = event.keyCode;
        alert("Case 2. event.keyCode is " + charcode);
    }

    document.getElementById("text1").value="";
}

<input type="text" id="text1" onkeyup="checkEnter(event)" />

上述功能适用于IE7和Chrome。

function checkKeyPressed() {
    document.onkeydown = function(event) {
        var charcode;
        if (event && event.which) {
            charcode = event.which;
            alert("charcode is " + charcode);
        }

        else if (event && !event.which) {
            charcode = event.keyCode;
            alert("charcode (keyCode) is " + charcode);
        }
    }
}

<input type="button" id="button1" onclick="checkKeyPressed(event)" value="Button" />

但是这只适用于Chrome。知道为什么吗?

2 个答案:

答案 0 :(得分:1)

您可以通过简单地检查参数是否未定义来组合这两者。

function MyOnClick(oEvent)
{
  if (typeof(oEvent) == "undefined")
     oEvent = event;

  // continue with your code
}

这适用于firefox,chrome,IE等。

答案 1 :(得分:0)

好的问题解决了。显然,你所要做的就是从onkeydown()中删除“event”参数。我认为那是因为IE不像Chrome那样读取javascript,因此无法正常工作,因为没有传递参数。 =。=