소프트웨어/JavaScript • Dhtml

jsShortcut , JS 단축키 클래스

falconer 2008. 3. 25. 08:33
이번에도 재미있는 스크립트을 공대여자님이 공개했다..
JS단축키~


데모 :
http://www.mins01.com/20070305/m_board/tech.php?b_id=tech&type=read&b_idx=462&page=1&period=365


언제가 그렇지만, 링크에 데모가 있습니다.

/*=======================================
// jsShortcut
// 작성일 : 2008-03-03
// 수정일 :
// 만든이 : mins,공대여자
// 홈페이지  : www.mins01.com

#간단설명
단축키에 따른 지정된 함수를 실행한다.

#사용법
<script src="jsShortcut.js" charset='utf-8' type="text/javascript"></script>
var shortcut = new jsShortcut(); //자동으로 shortcut.setEnable(); 가 적용된다.
//shortcut.addShortcut('0:65',function(){alert('a')}); //a키
shortcut.addShortcut(shortcut.parseKey('a'),function(){alert('a')}); //a키
shortcut.addShortcut(shortcut.parseKey('ENTER'),function(){alert('ENTER')}); //엔터키

#메소드
[void]jsShortcut.setEnable(); //단축키 적용,
[void]jsShortcut.setDisabld(); //단축키 해제
[void]jsShortcut.addShortcut('[특수키]:[일반키]',[함수]);
    '[특수키]:[일반키]' -> :로 구분
    [특수키]-> shiftKey(1)+ctrlKey(2)+altKey(4) 중 눌려있는 키의 합
    [일반키]-> 대문자 기준의 입력키코드 값
    [함수]->실행할 함수
    @ 사용하기 어려우므로 shortcut.parseKey()를 사용
    @ 중복된 단축키는 덮어 씌운다.(후자 우선)
[void]jsShortcut.removeShortcut('[특수키]:[일반키]');    
    메소드 addShortcut를 참고
[String]shortcut.parseKey([Key],[shiftKey],[ctrlKey],[altKey]);
    [Key] -> 1글자의 문자거나 키의 이름 (메소드 parseKey의 소스 참고)
    [altKey] -> altkey를 눌려야할 경우 1(true), 누르지 않을 경우 0(false), 기본값 0(false)
    [ctrlKey] -> ctrlKey를 눌려야할 경우 1(true), 누르지 않을 경우 0(false), 기본값 0(false)
    [shiftKey] -> shiftKey를 눌려야할 경우 1(true), 누르지 않을 경우 0(false), 기본값 0(false)
    @ 완벽변환이 안될 수 있음
@ 그외 메소드는 내부에서 사용됨.

#사용시 주의점
이벤트는 document의 onKeyUp 을 기준으로합니다.
필요에 따라서 onKeyDown으로 바꿔도 되지만
onKeyPress 로는 안됩니다.(특수키 등의 입력이 호환이 안됨)

#설정
jsShortcut.debug = true,false //디버그 모드
jsShortcut.target = document; //이벤트를 적용시킬 대상, 보통은 document, 프레임이나 팝업의 경우 그에 맞도록 변경
@ 그외 설정은 내부에서 사용됨

#프로퍼티
[Boolean]jsShortcut.state //적용중이면 true, 아니면 false;

#제한사항
1. "공대여자는 예쁘다"를 표현할 것.
2. 저작자표시 
3. 비영리 
4. 변경금지 

#연계파일

//=======================================*/


출처 : 공대여자님