CMS솔루션마켓, 이온디 - 워드프레스, 라이믹스, 카페24, 그누보드, 엑셀

프리랜서 커뮤니티

핫키 소스

2017년 06월 29일

XE 레이아웃 혹은 XE 애드온에 삽입 가능한 핫키 소스입니다.

hotkey.js

function checkHotkey(){
  if ( (event.srcElement.tagName != 'INPUT') && (event.srcElement.tagName != 'TEXTAREA') && (event.srcElement.getAttribute('contenteditable') != 'true') ){
    if ( (event.keyCode=='48') || (event.keyCode=='101') ) location.replace('/eond'); /* e, 0 */
 if ( (event.keyCode=='49') || (event.keyCode=='119') )location.replace('/web'); /* w, 1 */
 if (event.keyCode=='50' || event.keyCode=='100') location.replace('/webmal'); /* d, 2 */
 if (event.keyCode=='51' || event.keyCode=='99') location.replace('/community'); /* c, 3 */
 if (event.keyCode=='52' || event.keyCode=='108') location.replace('/look'); /* l, 4 */
 if ( (event.keyCode=='53') || (event.keyCode=='114') ) location.replace('/rosso'); /* r, 5 */
 if ( (event.keyCode=='54') || (event.keyCode=='115') ) location.replace('/is'); /* s, 6 */
 if (event.keyCode=='55' || event.keyCode=='110') location.replace('/mynote'); /* n, 7 */
 if (event.keyCode=='56' || event.keyCode=='102') location.replace('/likefirst'); /* f, 8 */
 if (event.keyCode=='57' || event.keyCode=='104') location.replace('/hera'); /* h, 9 */
 if (event.keyCode=='121') location.replace('/yncare'); /* y */
 }
}
document.onkeypress=checkHotkey;
// jQuery(document).not('input, textarea, [contenteditable=true]').keypress(checkHotkey);


input이나 textarea, 그리고 엘리먼트에 요소 중 contenteditable이 true가 아닌 경우에

keycode를 입력할 경우 원하는 페이지로 이동하는 소스입니다.

document.onkeypress=checkHotkey;

아무 키를 누르며녀 checkHotkey 펑션이 동작을 하게 됩니다.


라르게덴님이 제이쿼리로 알려주신 부분은 아래 주석으로 처리된 부분입니다.

input, textarea, 요소 중 contenteditable=true가 아닌 경우에 keypress (키를 누르는 동작)을 하면 checkHotkey가 동작이 됩니다.


참조 : https://github.com/madrobby/keymaster/issues/45