开发者

IE8 What is tiggering beforeunload event

I have an issue that is only a problem in IE8, go figure.

I have a anchor tag with an onclick attribute

<a href="javascript:void(0);" onclick="foo();">Click Me</a>

and then foo is declared elsewhere:

<script type="javascript/text">
     function foo(){
       //do some work
       return false;
   开发者_如何转开发  }
</script>

After foo is called, my onbeforeunload handler is being executed, and I have no idea why.

I have had other instances, if the foo function does not return false, it triggers the beforeunload event in IE, but even with this function returning false, it still hits my onbeforeunload handler and I can't figure out why.

Is there any way to find out what is triggering it. I have viewed the event object inside my onbeforeunload handler, but it doesn't not seem to give me and relevant info.

Any Ideas?


Change it to

<a href="#" onclick="return foo();">Click Me</a>

or

<a href="#" onclick="foo();return false;">Click Me</a>


There's also this thread over at microsoft "answers": http://answers.microsoft.com/en-us/ie/forum/ie8-windows_other/ie8-fires-onbeforeunload-when-clicking-a/0ac8cd9b-7483-4e16-b7c4-346df1f1499a :)


I had this issue as well on some anchor tags that were being rendered by CK Editor. Fixed by attaching a click event to a DIV that surrounded the anchor tags in question and stopped events from propagating to the window:

$('div.cke_form_fix').on('click', function(e){
    e.stopPropagation();
});
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜