단축키 관련 자바스크립트 설정 추가
parent
6feb16da96
commit
d499a66a4e
@ -0,0 +1,79 @@
|
||||
document.addEventListener('keydown', (event) => {
|
||||
|
||||
var RESERVED_FUNCTION_KEYS = ["F1","F2","F3","F4","F6","F7","F8","F9","F10","F11","PageDown","PageUp"];
|
||||
var KEYS_FOR_GLOBAL = ["F9","F10","F11"];
|
||||
|
||||
if(RESERVED_FUNCTION_KEYS.includes(event.key)){
|
||||
|
||||
event.preventDefault();
|
||||
|
||||
var activeBasckdropYn = isActiveBackdrop();
|
||||
|
||||
var curArea = getCurrentAreaForShortcutKey();
|
||||
|
||||
if(KEYS_FOR_GLOBAL.includes(event.key)){ //전역 기능
|
||||
|
||||
if(!activeBasckdropYn){
|
||||
//TODO : do somthing
|
||||
}
|
||||
|
||||
} else { //페이지별,다이얼로그별 버튼
|
||||
|
||||
if(curArea != null){
|
||||
|
||||
var targetButton = $(curArea).find("button.btn-"+event.key);
|
||||
|
||||
if(targetButton.length == 1){
|
||||
targetButton.click();
|
||||
} else {
|
||||
if(targetButton.length > 1){
|
||||
debug('단축키 버튼 중복 : ' + targetButton.length + "개");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
//단축키 기능이 사용될 영역을 반환한다.
|
||||
function getCurrentAreaForShortcutKey(){
|
||||
|
||||
if(isActiveBackdrop()){
|
||||
return getLastDialog();
|
||||
} else {
|
||||
return getActiveRootTabArea();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
//현재 활성화된 최상위 탭 영역을 반환한다.
|
||||
function getActiveRootTabArea(){
|
||||
return $("#innerPageTabContents").children(".active")[0];
|
||||
}
|
||||
|
||||
//마지막으로 열린 다이얼로그 영역을 반환한다.
|
||||
function getLastDialog(){
|
||||
return $("div.modal.show").last()[0];
|
||||
}
|
||||
|
||||
//백드롭 영역 활성화 여부를 반환한다.
|
||||
function isActiveBackdrop(){
|
||||
|
||||
if($("div.modal-backdrop").length < 1){
|
||||
return false;
|
||||
}
|
||||
|
||||
var isActiveYn = false;
|
||||
$("div.modal-backdrop").each(function(){
|
||||
if($(this).hasClass("show")){
|
||||
isActiveYn = true;
|
||||
};
|
||||
});
|
||||
|
||||
return isActiveYn;
|
||||
}
|
Loading…
Reference in New Issue