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. 변경금지
#연계파일 無 //=======================================*/
출처 : 공대여자님 |