데브매칭 과제에서 저렇게 해둔 이유는 파이어폭스에서 keyCode로 하면 onkeypress 이벤트가 작동하지 않기 때문이다. 0이 반환되기 때문
.code는 키보드에서 키의 물리적 위치에 해당하는 반면
.key는 위치에 관계없이 눌린 키에 의해 생성된 문자에 해당합니다.
– 크리스토퍼
'코드'와 '키'는 모두 최신 브라우저에서 특징이 있습니다. 의 "사용해 보기" 예제를 사용하면 IE11/IE Edge가 '코드'와 '키'를 구현하지 않음을 보여줍니다. 구현이 Chrome/FF/Safari의 구현과 일치하지 않습니다(차이점은 주로 Escape 및 Enter와 같은 제어 문자에 있는 것으로 나타남). 이러한 변화에 대해 스스로 설명하지 않는 한 라이브러리를 사용하는 것이 가장 쉬울 수 있다고 생각합니다. 나는 이것이 답이 되기를 정말로 원하지만 IE는 이것을 망친다 :-(
– 아크리코스
흠... 사실 크로스 브라우저 방식으로 키를 구현하는 것도 나쁘지 않아 보입니다. 일반 영숫자 키는 해당 값을 반환하고 제어 키(이스케이프, 엔터, 탭 등)의 경우 이전 버전의 사양을 구현하는 IE11/Edge를 제외하고 대부분의 브라우저에서 동일하게 구현된 것으로 나타나므로 각각에 대해 최소한 두 개의 가능한 값만 있습니다. 열쇠. 2018년 2월 14일 15:53
– 아크리코스
대신 사용 하는 것이 좋습니다
. 예를 들어 미디어 제어 키가 있는 키보드가 있는 경우 재생/일시 중지를 누르면 "MediaPlayPause"가 출력
되고 ""가 출력됩니다
.
– 트두안
결론
code 대신 key를 써라
I would advise using keyinstead of code
. For example, if you have a keyboard with media control keys, pressing Play/Pause outputs "MediaPlayPause" for keyand "" for code
.