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