그누보드 alert 창 sweetalert2로 적용 질문입니다.
본문
기본 basic 스킨 사용중입니다.
theme/member/basic/head.sub.php에
<script src='https://cdn.jsdelivr.net/npm/sweetalert2@11'></script>
추가하고
theme/member/basic/head.php
$(function(){
$(".gnb_menu_btn").click(function(){
$("#gnb_all, #gnb_all_bg").show();
});
$(".gnb_close_btn, #gnb_all_bg").click(function(){
$("#gnb_all, #gnb_all_bg").hide();
});
});
아래에
// alert을 swal로 대체
window.alert = function(message) {
Swal.fire({
text: message,
icon: 'info',
confirmButtonText: '확인'
});
};
이렇게 해도
비밀번호 수정페이지 들어갈때 로그인이 필요하다는 alert 창이나
비밀번호 찾기페이지에 이메일 자동숫자 입력하고 alert창에 적용이 안됩니다.. 미치겠습니다.
lib/common.lib.php의 alert가 있는 script 부분을 고쳐도 적용이 안됩니다..
답변 4
웹브라우저 기준으로
native 메소드인 window.alert 를
third party 라이브러리로 단순 오버라이딩 해서는
원하는 결과를 얻을 수 없습니다.
동작 방법부터 전자는 동기 메소드 후자는 비동기 메소드 이기 때문입니다.
소스코드 전반적으로 window.alert 를 사용하는 부분에 대해
비동기 메소드 콜백 형태로 바꿔준다음 전반적으로 올바로 동작하는지에 대해 테스트 하는 작업이 대대적으로 필요합니다.
<script src='https://cdn.jsdelivr.net/npm/sweetalert2@11'></script> <= 삭제
/lib/common.lib.php에서
// 경고메세지를 경고창으로
function alert 이부분을 아래 코드로 교체 하세요.
function alert($msg='', $url='') {
$msg = strip_tags($msg);
$msg = str_replace("\n", "\\n", addslashes($msg));
echo '<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>';
echo '<script>';
echo 'document.addEventListener("DOMContentLoaded", function() {';
echo 'Swal.fire({ text: "'.$msg.'", icon: "info", confirmButtonText: "확인" }).then(() => {';
if ($url) {
echo 'location.href = "'.$url.'";';
} else {
echo 'history.back();';
}
echo '});';
echo '});';
echo '</script>';
exit;
}
해결했습니다 감사합니다
해결하셔서 다행 입니다.
제 정보와 차이점이 있나요?