의 모든 또한 keyCode가 , , charCode 값 과 keyIdentifier가 : 사용되지 않습니다 및 비표준 기능입니다. Chrome 54에서 제거되고 Opera 41.0 은 FF에 일반 문자가있는 키 누르기 이벤트에서 0을 반환합니다.
charCode
keyIdentifier
keyIdentifier
keyCode
주요 속성 :
readonly attribute DOMString key
누른 키에 해당하는 키 속성 값을 보유합니다.
이 글을 쓰는 시점에서이 key
속성은 Firefox 52, Chrome 55, Safari 10.1, Opera 46의 모든 주요 브라우저에서 지원됩니다. Internet Explorer 11 제외 :
비표준 키 식별자 및 AltGraph의 잘못된 동작. 추가 정보
중요하거나 이전 버전과의 호환성이 필요한 경우 다음 코드와 같이 기능 감지를 사용할 수 있습니다.
을 주목하는 것이 key
값이 다르다 keyCode
거나 which
점에서 속성 : 그것은 키가 아닌 해당 코드의 이름이 포함됩니다. 프로그램에 문자 코드가 필요한 경우 charCodeAt()
. 인쇄 가능한 단일 문자의 charCodeAt()
경우 ArrowUp
기회 와 같이 값에 여러 문자가 포함 된 키를 다루는 경우를 사용할 수 있습니다 . 특수 키를 테스트하고 그에 따라 조치를 취합니다. 그래서 키의 값의 테이블을 구현하는 시도와 해당 코드는 charCodeArr["ArrowUp"]=38
, charCodeArr["Enter"]=13
, charCodeArr[Escape]=27
... 등등, 살펴 보시기 바랍니다 키 값 과 해당 코드를
if(e.key!=undefined){
var characterCode = charCodeArr[e.key] || e.key.charCodeAt(0);
}else{
var characterCode = e.which || e.charCode || e.keyCode || 0;
}
이전 버전과의 호환성을 고려할 수 있습니다. 즉, 레거시 속성을 사용할 수있는 동안 사용하고 드롭 된 경우에만 새 속성으로 전환 할 수 있습니다.
if(e.which || e.charCode || e.keyCode ){
var characterCode = e.which || e.charCode || e.keyCode;
}else if (e.key!=undefined){
var characterCode = charCodeArr[e.key] || e.key.charCodeAt(0);
}else{
var characterCode = 0;
}
참조 : KeyboardEvent.code
속성 문서 및이 답변의 자세한 내용 .
.key
모든 주요 브라우저에서 지원됩니다. developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/…