2009-11-10 3 views
3

사용자 정의 CMS가 있으며 300 밀리 초 내에 Ctrl 키를 두 번 눌러 트리거되는 "바로 가기 메뉴"를 추가하려고합니다. 나는 프로토 타입을 사용하므로 나의 출발점은 분명히 :JS에서 이중 Ctrl 키 누르기 감지

순간에 나의 접근 방식은 밀리 초 단위로 현재 시간과 전역 변수를 채우는하고, 키를 누를 때 무슨 일이 있었 여부 키를 누를 때마다에 확인 될 것이다

Event.observe(document, 'keypress', function(event) 
    { if(event.keyCode == Event.KEY_XYZ) { show_shortcuts}); 
300 인 미만 밀리 초 전.

하지만 좀 더 우아한 해결책이 있습니까?

+0

는 Ctrl 키가 300을 계속 누르고 그러나 그것은 또한 화재, 최초의 롤이었고, 또한 나는 그것이 작동을 두 번 변화 – ncubica

답변

6

이렇게하면됩니다. Alt 또는 Shift와 같은 다른 키를 동시에 누르지 않으면 추가 검사를 추가 할 수 있습니다. 그것이 단지 묻지 않고 명확한 설명을 제공한다면 그것은 스스로 설명 할 수 있기를 바랍니다. 캔트 @Pekka이 upvote에없는 질문이 웃 생각

var dblCtrlKey = 0; 
Event.observe(document, 'keydown', function(event) { 
    if (dblCtrlKey != 0 && event.keyCode == 17) { 
    alert("Ok double ctrl"); 
    } else { 
    dblCtrlKey = setTimeout('dblCtrlKey = 0;', 300); 
    } 
}); 
+0

찾고 있던이 질문에 유용하다고 밀리 초. "키업"검사기를 추가해야하지만이 검사기의 기초가됩니다. 건배! –

+0

키를 눌렀을 때 발동하지 않습니다. 브라우저에 따라 다를 수도 있습니다 (저는 Opera를 사용하고 있습니다) – jitter

+1

@Pekka는 대신에'keyup'을 사용합니다 ;-) – yckart