Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么使用jQuery';在Firefox和Chrome中,哪个会给出不同的结果?_Javascript_Jquery_Google Chrome_Firefox_Keycode - Fatal编程技术网

Javascript 为什么使用jQuery';在Firefox和Chrome中,哪个会给出不同的结果?

Javascript 为什么使用jQuery';在Firefox和Chrome中,哪个会给出不同的结果?,javascript,jquery,google-chrome,firefox,keycode,Javascript,Jquery,Google Chrome,Firefox,Keycode,看一看(来自jQuery的站点) 在Firefox中单击-(破折号)表示事件。它是173,而在Chrome中执行相同操作则产生189 表示事件。为实现跨浏览器一致性,应规范化该事件。但是,看起来这不是真的 为什么会出现这种不一致 这个jQuery页面显示了event.com,为了实现跨浏览器的一致性,应该对其进行规范化。但是,看起来这不是真的 jQuery规范化属性名称(例如,总是which,而不是which或keyCode,具体取决于浏览器),但不规范属性的值,这将非常复杂 从keydown/

看一看(来自jQuery的站点)

在Firefox中单击
-
(破折号)表示
事件。它是
173
,而在Chrome中执行相同操作则产生
189

表示
事件。为实现跨浏览器一致性,应规范化该事件。但是,看起来这不是真的

为什么会出现这种不一致

这个jQuery页面显示了event.com,为了实现跨浏览器的一致性,应该对其进行规范化。但是,看起来这不是真的

jQuery规范化属性名称(例如,总是
which
,而不是
which
keyCode
,具体取决于浏览器),但不规范属性的值,这将非常复杂

keydown
/
keydup
中获取的键值不仅会因浏览器而异,还会因键盘布局而异。Jan Wolter的页面上有很多血淋淋的细节。除此之外,您可以在该页面上看到,对于该键,Firefox将为您提供109,IE(显然是Chrome)将为您提供189,Opera显然过去为45(但在我的Linux测试中,他们现在为109)


对于可打印的击键(如
-
),您最好使用
按键
事件,它将为您提供结果字符。

非常感谢您的澄清!从jQuery1.11开始,jQuery似乎没有完全规范化
事件,至少在FireFox中是这样。从这里可以看到:
event.which
event.keyCode
都有不同的值,具体取决于您按的键。按打印字符似乎填充
e.which
,而例如,Tab键填充
e.keyCode
,Enter键用相同的值填充
e.which
e.keyCode
。在FireFox中,未填充的属性值设置为
0
。在Chrome中,这似乎是标准化的,但Chrome中的选项卡键似乎不会触发
keypress