为什么jQuery的event.which在Firefox和Chrome中给出了不同的结果?
看看这个现场演示 (来自jQuery的网站)。
在Firefox中单击-
(破折号)表示event.which
为173
,而在Chrome中执行相同操作则产生189
。
这个jQuery页面说的是event.which
应该规范化以实现跨浏览器的一致性。 但是,看起来这不是真的。
为什么这种不一致?
这个jQuery页面说的是event.which应该规范化以实现跨浏览器的一致性。 但是,看起来这不是真的。
jQuery规范化属性名称 (例如,总是which
,而不是which
或keyCode
取决于浏览器),而不是属性的值 ,这将显着更复杂。
从keydown
/ keyup
获得的密钥值不仅会因浏览器而异,还会受键盘布局的影响。 Jan Wolter在JavaScript疯狂:键盘事件页面上有很多细节。 除此之外,你可以在那个页面上看到,对于那个键,Firefox会给你109,IE(显然是Chrome)会给你189,而Opera显然习惯用45(但在我的Linux测试中,他们现在跟109)一起去。
对于可打印的击键(如-
),最好使用keypress
事件,它会为您提供结果字符 。