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]