2016-08-09 3 views
1

내 응용 프로그램에 iframe을 사용하고 있습니다. 키보드에서 아무 키나 누르면 문자열 값이 반환됩니다.키 다운 키 코드가 예상 문자열 값을 반환하지 않습니다.

다른 모든 키는 키 219 ,220, 221을 제외한 예상 된 문자열 값을 반환합니다.

이러한 키는 "Û", "Û", "Ý"이 값으로 반환됩니다.

그러나 나는이 문자열 값이 "[", "]", "\" 일 것으로 예상됩니다.

어떻게 이러한 키에서 올바른 문자를 얻을 수 있습니까?

+0

function handler(e) { var msg = "Received " + e.type; if (e.type === "keypress") { // keypress msg += " '" + String.fromCharCode(e.charCode || e.which) + "'"; } else { // keydown/keyup msg += " " + (e.which || e.keyCode); } console.log(msg); } document.addEventListener("keydown", handler, false); document.addEventListener("keyup", handler, false); document.addEventListener("keypress", handler, false);
Click here to focus the document, then press keys.
당신이 당신의 문제에 대한 바이올린을 공유 할 수 있습니다. – sameer

+0

'91','93','92'이 아니겠습니까? –

+0

@ sameer 그가 말하는 것은 부분적으로 맞습니다. 바이올린이 필요하지 않습니다. –

답변

3

keydownkeyup은 입력 키보드 유형 (지역에 따라 다른 키보드 등)에 따라 키보드마다 다를 수있는 키 코드를 사용합니다. paranoically 나는 경향이 있지만, 인쇄 가능한 문자를 들면

, 당신은 (그것을 charCode에서 당신을 제공하는 (있는 경우)에게 문자 키의 번역 가치를 제공하는 keypress을 발행하는 브라우저 기다릴 필요 e.charCode || e.which, 어쩌면 그건 어리 석다). 예를 들어, 키보드에 키가 있습니다. * nix에서 구성한 방식대로 keydown/keyup에 대한 키 코드 220이며 문자 £을 생성합니다. 그러나 다른 키보드 레이아웃으로 Windows를 실행하는 가상 컴퓨터에서 동일한 키는 keydown/keyup에 대한 키 코드 220이지만 문자 #을 생성합니다.

예 :

+2

경험에 관한 모든 것 .. ___ ~ 25 years___ – Rayon

관련 문제