티스토리 뷰
메시지의 종류는 총 3가지다.
- 타임메시지: 지정한 시간(초)만큼 보였다가 사라지는 메시지.
- 일반메시지: 닫기 버튼을 눌러야 사라지는 메시지. (showAlertCall()을 사용할 경우 컨펌메시지처럼 닫기 후 실행될 함수 불러올 수 있음.)
- 컨펌메시지: 확인 버튼을 클릭 시, 특정 함수 실행.
let timeAlInterval; let confirmFuncName; let confirmParams; let closeFuncName; let closeParams; $(document).ready(function() { let confirmModalOK = document.querySelector("#confirmModalOK"); let alertModalClose = document.querySelector("#alertModalClose"); if(confirmModalOK != undefined){ confirmModalOK.addEventListener("click", function(){ $("#confirmModal").modal("hide"); if(confirmFuncName != undefined){ let confirmFuncObj = getFunctionFromString(confirmFuncName); confirmFuncObj(confirmParams); confirmFuncName = null; confirmParams = null; } }); } if(alertModalClose != undefined){ alertModalClose.addEventListener("click", function(){ $("#alertModal").modal("hide"); if(closeFuncName != undefined){ let closeFuncObj = getFunctionFromString(closeFuncName); closeFuncObj(closeParams); closeFuncName = null; closeParams = null; } }); } }); /* * String -> Function Object */ function getFunctionFromString(string) { var scope = window; var scopeSplit = string.split('.'); for(i = 0; i < scopeSplit.length - 1; i++) { scope = scope[scopeSplit[i]]; // window[첫번째인자] if(scope == undefined) return; } return scope[scopeSplit[scopeSplit.length - 1]]; // window[첫번째인자].두번째인자 } /* * 타임메시지 * title: 메시지 제목 * msg: 메시지 내용 * second: 메시지를 보여줄 시간(초), 값을 * 넘기지 않는다면 기본은 1초. */ function showTimeAl(title, msg, second){ if(second == undefined || second <= 0) second = 1; let timeAlSpan = document.querySelector("#timeAlSpan"); timeAlSpan.innerHTML = ""; document.querySelector("#timeAlModalTitle").innerHTML = title; document.querySelector("#timeAlModalMsg").innerHTML = msg; clearInterval(timeAlInterval); timeAlSpan.innerHTML = second + "초 후 닫힘"; timeAlInterval = setInterval(function() { let timerTxt = (--second) + "초 후 닫힘"; timeAlSpan.innerHTML = timerTxt; if(second == 0) $("#timeAlModal").modal("hide"); }, 1000); $("#timeAlModal").modal("show"); } /* * 일반 메시지 * title: 메시지 제목 * msg: 메시지 내용 * flag: "e"일 경우, 제목 글씨를 빨간색으로 변경. */ function showAlert(title, msg, flag) { let alertModalTitle = document.querySelector("#alertModalTitle"); if(flag == "e") alertModalTitle.classList.add("text-danger"); document.querySelector("#alertModalTitle").innerHTML = title; document.querySelector("#alertModalMsg").innerHTML = msg; $("#alertModal").modal("show"); } /* * 일반 메시지 * title: 메시지 제목 * msg: 메시지 내용 * funcName: 확인 버튼을 누르면 실행될 함수명 * paramArray: 확인 버튼을 누르면 실행될 함수의 매개변수 (array) * flag: "e"일 경우, 제목 글씨를 빨간색으로 변경. */ function showAlertCall(title, msg, funcName, paramArray, flag) { let alertModalTitle = document.querySelector("#alertModalTitle"); if(flag == "e") alertModalTitle.classList.add("text-danger"); document.querySelector("#alertModalTitle").innerHTML = title; document.querySelector("#alertModalMsg").innerHTML = msg; closeFuncName = funcName; closeParams = paramArray; $("#alertModal").modal("show"); } /* * 컨펌 메시지 * title: 메시지 제목 * msg: 메시지 내용 * funcName: 확인 버튼을 누르면 실행될 함수명 * paramArray: 확인 버튼을 누르면 실행될 함수의 매개변수 (array) */ function showConfirm(title, msg, funcName, paramArray) { document.querySelector("#confirmModalTitle").innerHTML = title; document.querySelector("#confirmModalMsg").innerHTML = msg; confirmFuncName = funcName; confirmParams = paramArray; $("#confirmModal").modal("show"); }
'공장 (factory) > - Programming..' 카테고리의 다른 글
[Python] pyodbc를 이용한 MSSQL DB조회 (1) | 2020.04.09 |
---|---|
[javascript/jQuery] javascript와 jQuery 비교 정리. (0) | 2020.01.09 |
[MSSQL] UPDATE문에 JOIN/LEFT JOIN/INNER JOIN 사용하기. (0) | 2019.11.12 |
[Java] bean 등록을 하지 않는 객체에서 bean 등록 객체 사용하기. (0) | 2019.11.06 |
[eclipse] Remote System Explorer Operation 해제 (0) | 2019.10.23 |
댓글