jquery에서는 1.8 이후에 deprecated 되었고 3.0 이후에 완전 삭제 된 기능으로

.unload()가 존재하는데, 얘가 좀 직관적인 이름이긴 하다..

[링크 : https://api.jquery.com/unload/]


아무튼 document가 아니라 window에 대해서 before unload 이벤트를 등록하면

창을 이동하거나 닫거나 X 누를때(크롬에서 확인) 이벤트가 발생한다.

$(window).on("beforeunload", function() { 

    return confirm("Do you really want to close?"); 

}) 


[링크 : https://stackoverflow.com/questions/16707249/detect-close-windows-event-by-jquery]

[링크 : https://www.w3schools.com/jquery/event_unload.asp]

[링크 : http://suyou.tistory.com/86]


+

해보니.. 로그인 확인 누를때도 떠서 해제해줄 필요가 있네..

등록은 on() / bind()로 한다면

해제는 off() / unbind()로 한다.

//onBeforeUnload 이벤트 지정

$(window).bind('beforeunload', function()

{

    //페이지 변경이 있었는지 체크..

    var isChanged = ....; 


    //출력할 내용을 Return 해주면 확인 창이 뜨게 됩니다.

    if(isChanged) 

        return '변경된 사항이 있습니다. 페이지에서 나가시겠습니까?';<br>

    //확인 창을 띄우지 않으려면 아무 내용도 Return 하지 마세요!! (Null조차도)

};


//Form Submit 등 onBeforeUnload Event가 발생하길 원하지 않는 경우, 이벤트 해제

$('form').submit(function() 

{

    $(window).unbind('beforeunload'); 

}); 

[링크 : http://nsinc.tistory.com/101]

'Programming > javascript & HTML' 카테고리의 다른 글

모바일 크롬 select-option  (0) 2018.11.30
HTML border style 지정  (0) 2018.11.30
javascript 변수 정확도  (0) 2018.11.26
js object array sort by key  (0) 2018.11.21
wavesurfer.js 그리고 HE-AACv2  (0) 2018.11.21
Posted by 구차니