5

以下代码是否有任何理由不应该在我的控制台日志中返回任何内容?!

document.onkeypress =  zx();

function zx(){
    console.log(event.keyCode);
} // zx

window.onkeypress也不起作用。

已经进行了其他尝试,例如:

document.onkeypress =  zx(event);

function zx(event){
    console.log(event.keyCode);
} // zx

-

document.onkeypress =  zx;

function zx(){
    console.log(event.keyCode);
} // zx

谢谢!

4

4 回答 4

11

省略调用时的括号,您不需要指定它们。

解决方案:

document.onkeypress =  zx;
function zx(e){
    var charCode = (typeof e.which == "number") ? e.which : e.keyCode
    console.log(charCode);
}

演示

于 2012-04-16T22:02:36.070 回答
2

当附加functionevent你不需要()

做就是了:

document.onkeypress =  zx; //note! don't use the ()

function zx(){
    console.log(event.keyCode);
} // zx

如果您使用的是 chrome,请尝试通过

function zx(e){
    var key = e.which || e.keyCode;
    console.log(key);
} // zx
于 2012-04-16T22:03:24.183 回答
1

尝试这个

document.onkeypress = displayunicode;
function displayunicode(event){
    var charCode = (typeof event.which == "number") ? event.which : event.keyCode
    console.log(charCode )
}

这将起作用。

于 2012-04-16T22:14:21.697 回答
-1

您的函数需要定义“事件”。

// assign a reference to zx; but don't call zx
document.onkeypress =  zx;

// event needs to be defined
function zx(event){
    console.log(event.keyCode);
}

keyCode 有时为 0

请参阅此页面:MDN 上的 event.keyCode

您可能想使用 event.which

    document.onkeypress = zx;
    function zx(event) {
        console.log(String.fromCharCode(event.which));
    }
于 2012-04-16T22:29:02.927 回答