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,因为我不想只将它用于一个功能)

  2. 我真的需要这个代码:onload="document.body.focus();"?(我没有编写这个代码,所以我不知道。)

4

2 回答 2

3

您不需要load处理程序,页面在加载后已经聚焦,和/或如果有人在页面上的任何位置按下输入,它也将聚焦。

如果你需要keyup处理程序取决于你想用它做什么。您显示的代码是一个输入处理程序。如果您希望文本输入字段对输入进行操作则将处理程序添加到该字段会更有效。

此外,最好在您的脚本中执行此操作(不引人注意的 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 回答