1
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。知道为什么吗?

4

2 回答 2

1

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

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

  // continue with your code
}

这将适用于 firefox、chrome、IE 等。

于 2011-04-04T15:03:45.737 回答
0

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

于 2010-03-27T07:33:49.540 回答