Firefox中的onkeydown事件

January 28th, 2012 Blog 5 comments

在JS中处理onkeydown事件是常见的,打个比方,设置页面默认按钮即按回车执行某个指定事件.不过看似简单的步骤也可能被不同浏览器的支持标准给搞混了.

onkeydown的处理方式,ie和火狐 (firefox)就不同,不得不做些小的处理。

document.onkeydown=function(e){
	var keyCode;
	if(window.event){
		keyCode=event.keyCode;
	}else{
		keyCode=e.which;
	}

	if(keyCode==13){
		alert("回车");
	}else{
		alert(keyCode);
	}
}

注意代码中的处理分支,ie是支持event.keyCode,而firefox不支持event和keycode而转而支持事件处理程序的传入参数和which。

因此如果你单纯的使用e.keyCode在firefox中是无法执行的。

PS:在IE中event作为window对象的一个属性已经呗定义因此可以直接使用,不过在Firefox中是通过传参的方法来传播的,比如上面示例中的传入参数e.

  1. 睡到自然醒blog × 28 Jan 2012 @ 11:53 #comment-156

    祝博主新年快乐

  2. 西岸 × 28 Jan 2012 @ 12:24 #comment-11

    平时用到js的机会不多

  3. Louis Han × 28 Jan 2012 @ 14:12 #comment-1999

    这个是做插件或者JS的时候才用到吧

  4. Jenny × 31 Jan 2012 @ 11:39 #comment-2000

    真心不懂。。。。

  5. 游资 × 31 Jan 2012 @ 14:26 #comment-2001

    很不错的哦

Leave A Reply