onbeforeunload 이벤트 처리를 하면
다른 브라우저들은 괜찮은데 ie에서는
<a href="javascript:scriptExecute()">...</a>
이와 같이 a href 속성에서 스크립트 호출하면 onbeforeunload가 호출되어 버린다.
아마도 프로토콜을 http에서 javascript로 바꿔서 그런듯 한데 ie에서만 이런 현상이 나타난다
이거 방지하는 방법은 아래와 같이 하면 된다.
$(document).ready( function() {
// ie에서 <a href="javascript:.. 사용시 onbeforeunload 이벤트 2번 발생하여 아래와 같이 처리
$(window).data('beforeunload',window.onbeforeunload);
$('a[href^="javascript:"]').hover(
function(){window.onbeforeunload=null;},
function(){window.onbeforeunload=$(window).data('beforeunload');}
);
});
출처 : http://stackoverflow.com/questions/7650063/how-can-i-prevent-window-onbeforeunload-from-being-triggered-by-href-links-in-ie