2013-01-30 2 views
0
내가 키를 누를 때 방향 전환이 코드가

:키를 누를 때 리디렉션 문제

$('body').bind('keyup', function(event) { 
    if (event.keyCode == 66) { 
     window.location = "page.php"; 
    } 
}); 

나는이 있지만, 약 10 다른 키에 대해 반복했다.

내 질문은 사용자가 자신이 CTRL + C 또는 CTRL + P 복사 또는 붙여 넣기 경우 텍스트는 마우스 - 예를 강조 있다면 나는 그것을가 적용되지 만들 수있는 방법이다. 모두 선택한 텍스트와 키

+0

나는 당신이'event.metaKey'를 찾고 있다고 생각합니다. 이것은 브라우저 간 호환성을 위해 매핑되어 있다고 생각합니다. 이벤트 객체에는'ctrlKey'와'altKey'가 있습니다. 하지만 지금은 그것을 찾아 볼 시간이 없습니다. –

답변

0

확인 :

$('body').on('keyup', function(event) { 
    var t = ''; 
    if(window.getSelection){ 
     t = window.getSelection(); 
    }else if(document.getSelection){ 
     t = document.getSelection(); 
    }else if(document.selection){ 
     t = document.selection.createRange().text; 
    } 
    if ((!t.length) && event.which==66) window.location = 'page.php'; 
}); 
0

Obviously은 JS에는 isKeyDown() 기능이 없습니다.

function noMetakeyPressed(metakeysPressed) { 
    for (var k in metakeysPressed) { 
     if (metakeysPressed[k]) { 
      return false; 
     } 
    } 
    return true; 
} 

var metakeysPressed = {17: false, 18: false}; 

$('body') 
.bind('keydown', function(event) { 
    switch(event.keyCode) { 
    case 17: // Ctrl 
    case 18: // Alt 
     metakeysPressed[event.keyCode] = true; 
     break; 
    case 66: // B 
     if (noMetakeyPressed(metakeysPressed)) { 
      alert("B pressed"); 
     } 
     break; 
    } 
}) 
.bind('keyup', function(event) { 
    if(event.keyCode === 17 || event.keyCode == 18) { 
     metakeysPressed[event.keyCode] = false; 
    } 
}); 

Demo

당신은 또한 하나의 isMetakeyPressed 부울 변수를 사용할 수 있지만 어쩌면 당신은 metakey 현재 누를 때 무엇을 알아야합니다 즉,이 비록 사용자의 요구에 맞게해야했다.

관련 문제