인터넷정보

특정 키보드키 제어하기

알 수 없는 사용자 2007. 10. 17. 18:09
http://oxtag.com/html/ex/keycode3.html

키코드는 링크페이지 참조.

<script language="javascript">
<!--

        //키입력체크
        document.onkeydown = CheckKeyPress;
        document.onkeyup = CheckKeyPress;
        function CheckKeyPress()
        {
                //키입력
                ekey = event.keyCode;

                //리턴
                if(ekey == 38 || ekey == 40 || ekey == 78 || ekey == 112 || ekey ==17 || ekey == 18 || ekey == 25 || ekey == 122)
                 {
                   alert("이 특수키는 사용할수 없습니다.");
                   event.keyCode = 0;
                   return false;
                 }
        }
//-->
</script>

추가하는 방법은 알겠죠.

-----------------------------------------------------

<!--
        function        KeyEventHandle()
        {
                if(
                ( event.ctrlKey == true && ( event.keyCode == 78 || event.keyCode == 82 ) ) ||
        ( event.keyCode >= 112 && event.keyCode <= 123 ))
                {
                        event.keyCode                = 0;
                        event.cancelBubble        = true;
                        event.returnValue        = false;
                }
        }
        document.onkeydown=KeyEventHandle;
        document.onkeyup=KeyEventHandle;
-->

if 부분의 키코드에 대해서 조금 설명 드릴께요..
먼저 Event.ctrlKey == true 는 예상하신대로.. 컨트롤키가 눌러졌을때를 말합니다.
그리고 연산자 &&(AND) 가 붙어서 Ctrl키와 뒤에 정의된 코드가 같이 눌러졌을때를 말합니다
KeyCode 78번은 키보드 "N"키를 말합니다. 82번은 "R"키를 말합니다.
Ctrl + N 과 Ctrl + R. 즉, 새창띄우기와 새로고침 단축키를 방지합니다.
그리고 112~123사이의 키가 정의된것은 F1과 F12까지의 키를 막습니다.

그아래 event.keyCode = 0; 부분은 입력된 키코드를 0으로 바꿔버리는 명령이구요..
즉 입력된 키를 무효화 시킨다는 의미입니다.
그 아래 두개는 역시나 어플리케이션방지, 고유기능을 무효화 시키는 명령이구요..

제일 아래 두개는 키가 눌려지거나 떼어질때 위 함수를 실행하라는 것입니다~



document.onkeydown = CheckKeyPress;
document.onkeyup = CheckKeyPress;
function CheckKeyPress() {
        ekey = event.keyCode;
        if(event.keyCode == 17) {
                alert("이 특수키는 사용할수 없습니다.");
                return false;
        }
        return;
}


익스,넷츠 가능
document.onkeydown = CheckKeyPress;
document.onkeyup = CheckKeyPress;
function CheckKeyPress(e) {
    ekey = e?e.keyCode:event.keyCode;
    if(ekey == 17) {
        alert("이 특수키는 사용할수 없습니다.");
        return false;
    }
    return;
}
반응형