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

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

QA

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

답변 4

본문

기본 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;
}
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 129,119
© SIRSOFT
현재 페이지 제일 처음으로