document.onkeypress不工作,如何解决?

时间:2012-04-16 22:00:22

标签: javascript

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

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 个答案:

答案 0 :(得分:11)

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

解决方案:

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

Demo

答案 1 :(得分:2)

function附加到event时,您不需要()

只是做:

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

答案 2 :(得分:1)

试试这个

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

这样可行。

答案 3 :(得分:-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

请参阅此页:event.keyCode on MDN

您可能想要使用event.which

    document.onkeypress = zx;
    function zx(event) {
        console.log(String.fromCharCode(event.which));
    }