事件对象
Event对象用于描述在浏览器窗口中发生的事件,一旦事件发生,便会生成event对象。
在ie8及以下版本中,当事件函数被触发,可以通过window.event访问event对象;而其他浏览器把event对象作为参数传递给事件函数。
浏览器兼容写法如下:
function handleEvent(evt){
var myEvent = window.event ? Window.event : evt;
}
键盘响应事件
触发的事件顺序为keydown(键已按下)、keyup(键已弹起)、keypress(键按下并释放)
这里其实应该把keydown、keyup与keypress当做两种分类情形来使用。
①:keydown、keyup可以捕获组合键,keypress只能捕获单个字符。
②:keydown、keyup可以捕获除printScreen之外的所有按键;keypress主要用来接收字母、数字等ANSI字符。
③:keydown、keyup不能判断键值字母的大小;keypress不显示键盘的物理状态,而是只传递一个字符,会区分大小写。
④:keydown、keyup区分数字小键盘与主键盘的数字字符,而keypress不区分。
获取按键:
获取按键代码 evt.keyCode
获取按键字符 String,fromCharCode(evt.keyCode)
alt是否按中状态 evt.altKey
ctrl是否按中状态 evt.ctrlKey
shift 是否按中状态 evt.shiftKey
以下为按下enter键的操作
function enterOperate(evt){
if(evt.keyCode == 13){
alert("按下enter键");
}
}
document.body.addEventListener("keydown", enterOperate);
组合按键操作:
以下为组合按键
function combinationKey(evt){
if( evt.shiftKey && evt.keyCode == 73){
alert(“触发了shift + i组合键”);
}
}
由于浏览器也定义了一些组合键操作,为了避免冲突,建议使用shift为组合键而不是ctrl键。