keypress,keydown,keyup,charCode,keyCode兼容性问题

本文详细解析了键盘事件中的keypress、keydown和keyup的区别。说明了不同事件触发的时机及其对应的编码方式,如字符编码与键码,并提供了兼容性解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

keypress对应的是字符编码,如“ABC”,“123”之类,有大小写之分(有兼容性问题)

keydown,keyup对应的是键盘的键码,无大小写之分,每个键盘都有一个键码(无兼容性问题)

使用keypress时最好使用charCode,但只有IE8及以下浏览器不支持,统一返回“undefined”,只有使用keyCode才会有正确的返回值

在Firefox下把keypress和keyCode对应的话,不管什么键得到的返回值都是0(chrome和IE不存在这个问题),因此要做兼容

document.onkeypress = function(event){
	event = event || window.event;
	alert(getCode(event));
}
function getCode(event){
	if(typeof event.charCode == "number"){
		return event.charCode;
	}else{
		return event.keyCode;
	}
}

  

转载于:https://www.cnblogs.com/diantao/p/5136348.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值