检测按下了哪个键——这是一个好方法吗
Detecting which key is pressed - is this a good way?
我不久前在互联网上发现了一个简单的代码。。。找不到它的特殊网站,但代码是在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年的历史了(也许更多!),我认为它可能有点过时或非常过时!
我的问题:
有更好的方法吗?还是这仍然是一个好方法?(我不想将jQuery用于此代码,因为我不想仅将其用于一个函数)
我真的需要这个代码吗:
onload="document.body.focus();"
?(我还没有编程这个代码,所以我不知道。)
您不需要load
处理程序,页面加载后将已经聚焦,和/或如果有人按在页面上的任何位置输入,它也将聚焦。
如果您需要keyup
处理程序,取决于您想对它做什么。您显示的代码是一个回车处理程序。如果您希望文本输入字段在键入enter时起作用,那么将处理程序添加到该字段会更有效。
此外,最好在脚本中执行(这是不引人注目的javascript使用的一部分)。keypress
处理程序就足够了,因为否则enter值将成为输入值的一部分。类似于:
[someTextInput].onkeypress = function(e){
e = e || event;
if ( (e.which || e.keyCode) === 13 ){
// do things
}
}
或者您可以使用addEventListener/attachEvent
(请参阅此处)。
function displayunicode(e){
var unicode = e.keyCode ? e.keyCode : e.charCode
alert(unicode)
}
做同样事情的另一种方法。
相关文章:
- 将一个方法转换为promise:Nodejs
- 如何在所有ng点击事件AngularJS上启动一个方法
- 创建一个方法,通过一个窗口进行迭代并获取Titanium中的所有控件
- 如何创建一个方法来验证数组的范围
- 如何将一个方法延迟到另一个方法首先完成,javascript
- 在Javascript中对类的每个实例调用一个方法
- 如何重写一个方法,并且仍然能够在重写的方法中使用基方法
- NodeJS-从同一文件中的另一个方法调用一个方法
- 有没有任何情况下,一个方法不应该是原型方法
- Jasmine间谍的函数称为一个方法
- 在带有参数列表的表单submit上调用一个方法
- 方法不在另一个方法内部调用
- 在 1 个方法中增加变量值会触发另一个方法的 for 循环,欢迎任何建议
- 如何使用javascript express node将变量从控制器中的一个方法公开.js到另一个控制器.js
- 如何在javascript中将变量的值分配给另一个方法
- 在浏览器关闭时,单击确认对话框中的“停留在页面上”,执行一个方法
- 使用一个方法在c#中启动其他方法
- 如何在Ember中转换到另一个路由时调用一个方法
- 在typescript中重载一个方法
- 我可以在setInterval函数中放入一个方法作为参数吗