2013-08-11 9 views
5

(jQuery의 사이트에서) this live demo을 살펴보십시오. 파이어 폭스에서 - (대시)를 클릭jQuery의 이벤트가 Firefox 및 Chrome에서 다른 결과를 제공하는 이유는 무엇입니까?

189을 생산 크롬에서 같은 일을하면서 event.which173 것을 말한다.

This jQuery page은 브라우저 간 일관성을 위해 event.which을 정규화해야한다고 말합니다. 그러나 이것이 사실이 아닌 것처럼 보입니다.

왜 이러한 불일치가 발생합니까?

답변

4

이 jQuery 페이지는 브라우저 간 일관성을 위해 정상화되어야하는 이벤트를 말합니다. 그러나 이것이 사실이 아닌 것처럼 보입니다.

는 jQuery를이 재산 이름 (브라우저에 따라, 예를 들어, 항상 which보다는 which 또는 keyCode)하지만 극적으로 더 복잡 할 것 값 속성의를 정규화.

keydown/keyup에서 얻는 키 값은 브라우저뿐만 아니라 키보드 레이아웃에 따라 다릅니다. Jan Wolter의 JavaScript Madness: Keyboard Events 페이지에는 많은 불만 사항이 있습니다. 다른 것들 중에서도 그 페이지에서 파이어 폭스가 109, IE (그리고 분명히 크롬)는 189, 오페라는 분명히 45와 함께 사용했다는 것을 알 수있다. (그러나 리눅스에 대한 나의 테스트에서 그들은 지금 109와 함께). (- 같은) 인쇄 키 입력에 대한

, 당신은 당신에게 결과 문자을 제공하는 keypress 이벤트와 더 낫다.

+0

설명해 주셔서 감사합니다. –

+0

jQuery 1.11부터는 jQuery가 적어도 FireFox 아래에서 'event.which' 속성을 완전히 표준화하는 것처럼 보이지 않습니다. 여기에서 볼 수 있듯이 http://jsbin.com/sozoqiro/1/edit?html,console'event.which'와'event.keyCode' 둘 다 당신이 누르는 키에 따라 다른 값을 갖습니다. 인쇄 문자를 누르면 'e.which'가 채워지는 반면 Tab 키는 'e.keyCode'를 채우고 Enter 키는 'e.which'와 'e.keyCode'를 동일한 값으로 채 웁니다. 파이어 폭스에서는 채워지지 않은 속성 값이 '0'으로 설정됩니다. – DavidScherer

+0

Chrome에서는 정상화 된 것으로 보이지만 Chrome에서 'keypress'가 Tab 키를 실행하지 않는 것 같습니다. – DavidScherer