2016-12-24 4 views
-1

예를 들어, 스페이스 바를 누를 때마다 (keyCode 32) 컴퓨터가 문자 A가 눌러 진 상태 (keyCode 65)로 컴퓨터를 읽으려는 경우 어떻게해야합니까?어떻게 자바 스크립트에서 두 개의 키보드 버튼을 바꿀 수 있습니까?

내가 입력이되고 싶다고 말하면 사람이 입력 할 때마다 b가됩니다. 이 같은

뭔가 :

<!DOCTYPE html> 
<html> 
<body> 

<input> </input> 



<script> 

document.onkeydown = function(event) 
{ 
    var x = event.keyCode; 

    if(x == 65) 
    { 
     x = x + 1; 
    } 


} 

</script> 

</body> 
</html> 

그것은 비밀 메시지가 인코딩 된 수수께끼 게임의 일부입니다. 예를 들어 사람이 "vnbbl"을 타이핑하면 "안녕하세요"라는 뜻으로 v는 h, n은 e 등이됩니다.

+1

왜 이렇게해야합니까? – Li357

+0

나는 이것이 가능하다고 생각하지 않는다. 현재 탭에서만이 동작을 변경하고 싶습니까? 또는 전체 시스템에서? 당신이 왜 이것을 원하는지를 추가 할 수 있다면 좋을 것입니다, 아마도 당신의 문제를 해결할 더 좋은 방법이 있습니다. –

+0

전체 시스템. 나는 전자와 같은 nodejs 프로그램에서이 프로그램을 실행할 것이다. – Harland

답변

0

질문을 올바르게 이해하면 프로그램에 키를 등록하려고합니다 다르게.

는 기술적으로 당신은 너무처럼 x 변수를 변경할 수 있습니다 :

document.onkeydown = function (event){ 
    var x = event.keyCode; 
    x = (x + 33) % 126; 
    // 33 is the difference between 32 and 65; 
    // 126 is the total number of keyCodes 
} 

이 같은 공식을 사용하지만, 당신의 문자열에 영숫자가 아닌 문자가 발생합니다. (예 : ~)

0

원본 요소가 텍스트 입력 요소입니까? 컴퓨터를 속일 생각은 없지만 다음과 같이 요소 값을 변경하는 것이 좋습니다.

document.onkeydown = function(event) 
{ 
    var x = event.keyCode; 
    //source element 
    var elem = event.target; 

    if(x == 32) 
    { 
     //replacing all " " with "a", this is case sensitive, ok? so "A" and "a" are different situations... 
     elem.value = elem.split(' ').join('a'); 
    } 
} 
관련 문제