IE 浏览器中的 onbeforeunload 问题

5

我正在使用以下代码来离开当前页面。在Chrome和Mozilla浏览器中,它可以正常工作,但是在IE 10浏览器中,它会对每个锚标签进行调用。 我该怎么做才能防止IE 10浏览器中的这种情况发生?

window.onbeforeunload = function()
{   
   return  "";
};

这似乎是一个合理的问题,不知道为什么被投票关闭了。 - Anand Sunderraman
3个回答

1
这是IE的默认行为,当你悬停在锚标签上时,需要从中删除onbeforeunload事件:
$(document).ready(function(){
    //store onbeforeunload for later use
    $(window).data('beforeunload',window.onbeforeunload);  

      //remove||re-assign onbeforeunload on hover 
    $('a')
      .hover( 
             function(){window.onbeforeunload=null;},
             function(){window.onbeforeunload=$(window).data('beforeunload');}
            );


});

或者你需要在每个锚点标签的onClick事件中添加'return false':

<a onclick="someFunction(); return false;" href="lnk" >my link</a>

我使用了上面的代码,但是当单击锚标签时,仍然会调用onbeforeunload。 - shivakumar
仍然无法工作,有人能够给我提供与我的上述代码完全相符的解决方案吗? - shivakumar

1
使用这个。
window.onbeforeunload = function (e) {
var e = e || window.event;

// For IE and Firefox
if (e) {
    e.returnValue = '';
}

// For Chrome and Safari
return '';
};

0

试试这个

<html>
<head>
<script>
   function closeIt()
   {
      return "Any string value here forces a dialog box to \n" + 
     "appear before closing the window.";
    }
  window.onbeforeunload = closeIt;
</script>
</head>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接