我刚才在互联网上找到了一个简单的代码...找不到特定的网站,但代码是在2005年制作的。所以,我想知道这是否是一个很好的方法:< / p>
这是在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年(可能更多!),我认为它可能有点或非常过时!
我的问题:
是否有更好的方法可以做到这一点还是一个好方法? (我不想在这段代码中使用jQuery,因为我不想只为一个函数使用它)
我真的需要这段代码:onload="document.body.focus();"
? (我没有编写这段代码,所以我不知道。)
答案 0 :(得分:3)
您不需要load
处理程序,页面在加载后已经过关注,并且/或者如果有人在页面的任何位置按输入,它也会被关注。
如果你需要keyup
处理程序取决于你想用它做什么。您显示的代码是一个输入处理程序。如果您希望文本输入字段在输入输入时起作用,则将处理程序添加到该字段会更有效。
此外,最好在脚本中执行此操作(unnobtrusive javascript用法的一部分)。 keypress
处理程序就足够了,因为否则输入值将成为输入值的一部分。类似的东西:
[someTextInput].onkeypress = function(e){
e = e || event;
if ( (e.which || e.keyCode) === 13 ){
// do things
}
}
或者您可以使用addEventListener/attachEvent
(See here)。
答案 1 :(得分:1)
function displayunicode(e){
var unicode = e.keyCode ? e.keyCode : e.charCode
alert(unicode)
}
另一种做同样事情的方法。