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 に答える