그누보드 alert 창 sweetalert2로 적용 질문입니다.

그누보드 alert 창 sweetalert2로 적용 질문입니다.

QA

그누보드 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;
}
답변을 작성하시기 전에 로그인 해주세요.
전체 4

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT