티스토리 뷰

javascript 를 이용해서 F1 키를 캡쳐하는 방법은 간단하다.
물론 shift 나 alt, ctrl 키를 잡아내는 방법은 다른 키들과 약간 다르지만, 그다지 삽질할만한 내용이 아니므로 설명하진 않겠다.
다음과 같은 예제를 이용하면 F1 키 뿐 아니라 어떤 키도 잡아낼 수 있다.

<script type="text/javascript" language="Javascript">
// <![CDATA[
    document.onkeypress=keypress;
    function keypress() {
        if (event.keyCode == 112) {
            alert("press F1 key");
            event.keyCode = 0;
            return false;
        }
    }
// ]]>
</script>

하지만 위와 같은 방법을 사용하면 F1 의 이벤트 시점을 잡아낼 순 있지만, F1 키로 인한 도움말이 실행되는 것을 막을 순 없다. 저런 방법으로는 뭔짓을 해도 안된다.

몇번의 삽질과 msdn 을 뒤진 끝에 찾아낸 방법은 두 가지가 있는데, 예제를 보면 알겠지만 두 가직의 원리는 결국 같다.

첫 번째는 document 객체의 onhelp 이벤트를 잡아내는 방법이다.
<script type="text/javascript" language="Javascript">
// <![CDATA[
    document.onhelp=help_block;
    function help_block() {
        return false;
    }
// ]]>
</script>

두 번째는 body element 의 onhelp 이벤트에서 처리하는 방법이다.
<script type="text/javascript" language="Javascript">
// <![CDATA[
    function help_block() {
    }
// ]]>
</script>
<body onhelp="help_block();return false;">
</body>

두 번째 방법처럼 body element 에서 처리할 경우는 반드시 return false 를 위와 같이 처리해야 한다. 만약 help_block() 함수내에 처리할 경우는 올바르게 block 되지 않는다.

다만, 이 방법들은 Internet Explorer 6.x 에서만 유효하며, Firefox 나 Safari 에서는 동작하지 않는다. IE 7 에서는 테스트 해보지 않아서 어떨지 모르겠다.
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함