2011-10-29 3 views
0

onkeyup 이벤트를 사용하여 수정 자 키, 특히 Alt 키가 안정적으로 릴리스되는 것을 감지하지 못합니다. 때로는 효과가 있고 때로는 그렇지 않습니다. 하지만 대부분의 경우 그렇지 않습니다.수정 자 키 발사 onkeyup

내 현재 코드입니다 : 내가 IE9에서 일하고 있어요 및 파일 메뉴가 팝업으로 아마 Prevent default event action not working...? 관련

document.documentElement.onkeyup = function(e) { 
    e = e || window.event; 
    if(!e.altKey) { 
     // do stuff here 
     document.documentElement.onkeyup = null; 
    } 
} 

. 이벤트를 시작하기 전에 메뉴를 닫습니다.

+0

키 입력을 캡처하기 위해 창을 활성화해야한다고 생각했습니다. 변경 키가 웹 브라우저에 다른 기능을 가지고있는 경우 키 업 조치가 브라우저 간 일관성이 없을 수 있습니다. 특히 ALT가 메뉴를 가져 오는 방법 또는 Win + 키를 사용하면 브라우저에서 포커스를 잃을 수 있습니다. – donutdan4114

+0

그게 내 다른 질문 (링크 된 것)이 관련이 있다고 생각하는 이유입니다. 메뉴의 기본값을 막으려 고하지만 작동하지 않습니다. –

답변

1

귀하의 질문에 대한 직접적인 답변이 아니지만, this이 도움이 될 수 있습니다. 브라우저가 keydown/press/up을 관리하는 방법에 대한 매우 자세한 설명입니다.

0

일반적으로 브라우저 키 이벤트는 페이지 정의 된 이벤트보다 우선합니다. 그러나 내가 just testing in IE9 이었기 때문에 jQuery을 사용하는 것이 좋습니다. 그리고 그들은 그 문제를 극복 한 것 같습니다.

편집 : 이것은 이벤트를 캡처하는 것으로 보이지만 IE가 자체 이벤트를 수행하는 것을 막을 수는 없다고 생각합니다.

+2

죄송합니다. 그러나 jQuery 또는 다른 프레임 워크를 사용하는 것에 대해 단호하게 반대합니다. 구식이라 부르지 만 자바 스크립트를 순수하게 작성합니다. –

+0

@Kolink : jQuery를 코딩해야하는데, 30 분 후에 다시 코딩하지 않아야합니다. 아니, 15 분이면 돼. :) IMHO, 물론. johndodo

+0

@Kolink 충분히 공정하고, 그걸 잘못 생각하지 마라. e.preventDefault() onkeydown을 호출 해 보았습니까? 메뉴가 팝업되는 것을 막을 수 있습니다. –