2

少し前にインターネットで簡単なコードを見つけました...特定のサイトが見つかりませんが、コードは2005年に作成されました。

これはHTMLにあります:

<body onload="document.body.focus();" onkeyup="return keypressed(event)">

キーが押されると、JavaScript で次の関数が呼び出されます。

function keypressed(e) {
    var intKey = (window.Event) ? e.which : e.keyCode;
    if (intKey == 13) { // 13 = enter key
        //something happens if the key is clicked
    }
        // here, you can add as many if sentences for key strokes as you want! (same as first)

return true;
}

私が言いたいのは、コードが 7 年も前のもの (おそらくそれ以上!) であり、少し、または非常に時代遅れになっている可能性があるということです!

私の質問:

  1. これを行うためのより良い方法はありますか、それともこれはまだ良い方法ですか? (このコードには jQuery を使用したくありません。1 つの関数だけに使用したくないからです)

  2. このコードは本当に必要onload="document.body.focus();"ですか? (私はこのコードをプログラムしていないので、わかりません。)

4

2 に答える 2

3

ハンドラーは必要ありませんload。ページはロード後に既にフォーカスされています。また、誰かがページのどこかでEnterキーを押すと、ページもフォーカスされます。

ハンドラーが必要かどうかは、keyupハンドラーで何をしたいかによって異なります。表示するコードは入力ハンドラーです。enterを入力するとテキスト入力フィールドが動作するようにしたい場合は、そのフィールドにハンドラーを追加する方が効率的です。

さらに、スクリプト内から実行することをお勧めします (目立たない JavaScriptの使用の一部です)。そうしないと入力値が入力値の一部になるためkeypress、ハンドラーで十分です。何かのようなもの:

[someTextInput].onkeypress = function(e){
  e = e || event;
  if ( (e.which || e.keyCode) === 13 ){
     // do things
  }
}

または使用できますaddEventListener/attachEvent(ここを参照)。

于 2012-07-18T19:55:42.403 に答える
1
function displayunicode(e){
        var unicode = e.keyCode ? e.keyCode : e.charCode
        alert(unicode)
}

同じことを行う別の方法。

于 2012-07-18T20:02:54.457 に答える