다음과 같이 페이지를 벗어나기 전에, ‘수정사항이 있으니 다시 한번 확인해보세요’라는 메시지를 구현하는 방법에 대한 정리입니다.
![](https://t1.daumcdn.net/cfile/tistory/276C1E38532986980C)
Javascript의 window.onBeforeUnload Event를 이용한 기능입니다.
실행시점
window.onBeforeUnload Event는 Window개체가 Unload되기 전에 실행됩니다. 정확하게 다음과 같은 시점이 있을 수 있습니다. 다만 IE 7, 8에서는 버그로 인해 다르게 동작하는 경우도 있으므로 참고가 필요합니다.
- 창이나 탭을 닫을 때
- 새로고침, 앞, 뒤로 이동버튼 클릭 시
- location.href 변경
- Form Submit 발생 시
- A Tag 클릭 시
- HREF에 URL을 지정한 경우: 발생
- HREF에 #을 지정한 경우: 발생 안함
- HREF에 javascript:void(0)을 지정한 경우: 발생 안함
(IE7, 8에서는 onbefureunload이벤트가 발생하는 오류가 존재합니다.)
- Iframe 내부에서 로드된 경우 Iframe의 Src가 변경될 경우
구현방법
02 |
$(window).bind( 'beforeunload' , function() |
09 |
return '변경된 사항이 있습니다. 페이지에서 나가시겠습니까?' ;<br> |
14 |
$( 'form' ).submit(function() |
16 |
$(window).unbind( 'beforeunload' ); |
기타 확인사항
Firefox에서는 다음 그림과 같이, 지정한 안내텍스트가 출력되지 않는 버그가 있습니다. 곧 수정될 것이라고 하지만, 현재 Version 27까지도 수정되지 않은 상태입니다.
![](https://t1.daumcdn.net/cfile/tistory/2136383A5329869819)
출처: http://nsinc.tistory.com/101 [NakedStrength Inc.]