onbeforeunload 써 보셨나요???
JavaScript / 2010. 2. 26. 10:49
티스토리 블로그를 보거나 네이버에서 서비스 하는 것을 보다 보면 무언가를 작성하다 나갈 때 위와 같은 메시지를 확인 하신 경우가 있으실 것 입니다.
당장 지금 포스팅을 작성하다가 창을 끄거나 아래 취소를 누르면 메시지가 8초전까지만 저장된다는 메시지를 보실 수 잇습니다.
(그냥 확인만...)
위의 창을 보이게 하는 설정은 아래와 같습니다.
window.onbeforeunload = function() {
return "닫을 꺼예요??";
};
그냥 간단하게 윈도우나 BODY, FRAMESET 등과 같은 객체에 이벤트로 등록을 해주는 것만으로도 설정이 됩니다.
위의 확인 창이 발동되는 조건은 아래와 같습니다.
- 현재 브라우저 윈도우를 닫을 경우
- 새로운 주소를 치거나 즐겨찾기를 선택하여 새로운 경로로 탐색할 경우
- 뒤로, 앞으로, 새로고침, 홈으로 버튼을 클릭할 경우
- Click on an anchor that refers the browser to another Web page. (???)
- Invoke the anchor.click method. (???)
- document.write 메소드가 불려지는 경우
- document.open 메소드가 불려지는 경우.
- document.close 메소드가 불려지는 경우.
- window.close 메소드가 불려지는 경우.
- window.open 메소드가 불려지는 경우, providing the possible value _self for the window name.
- window.navigate or NavigateAndFind 메소드가 불려지는 경우.
- location.replace 메소드가 불려지는 경우.
- location.reload 메소드가 불려지는 경우.
- location.href 프로퍼티에 새로운 값이 정의되는 경우
- FORM submit 하는 경우
- 새로운 주소를 치거나 즐겨찾기를 선택하여 새로운 경로로 탐색할 경우
- 뒤로, 앞으로, 새로고침, 홈으로 버튼을 클릭할 경우
- Click on an anchor that refers the browser to another Web page. (???)
- Invoke the anchor.click method. (???)
- document.write 메소드가 불려지는 경우
- document.open 메소드가 불려지는 경우.
- document.close 메소드가 불려지는 경우.
- window.close 메소드가 불려지는 경우.
- window.open 메소드가 불려지는 경우, providing the possible value _self for the window name.
- window.navigate or NavigateAndFind 메소드가 불려지는 경우.
- location.replace 메소드가 불려지는 경우.
- location.reload 메소드가 불려지는 경우.
- location.href 프로퍼티에 새로운 값이 정의되는 경우
- FORM submit 하는 경우
anchor 와 관련된 것은 잘 모르겠지만 (하이퍼링크 대상을 나타내는 문자열이라고는 하는데...) 위와 같은 경우에 beforeunload 메소드가 fire 됩니다.
참고 사이트:
onbeforeunload Event (MSDN)
http://msdn.microsoft.com/ko-kr/library/ms536907(en-us,VS.85).aspx