解决a标签会触发window.onbeforeunload的问题

并不是所有页面上元素离开页面都想提示确认的情况下,使用onclick属性可以改变提示的逻辑。

<script>
var confirmFlag = 1;
window.onbeforeunload = function(){
    if(confirmFlag)
        return “确定离开?未计算的结果将丢失”;
}
</script>

不提示的a标签onclick设置confirmFlag=0即可

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html;charset=utf-8″ />
<script type=”text/javascript”>
window.onbeforeunload=function(){  
               return “56456456”;  
            }  
            function testMothed(){  
                alert(“555″);  
            }  
</script>
</head>
<body>
     点a标签时事件调用顺序:onclick->window.onbeforeunload->href   
     在IE中点击A标签会触发window.onbeforeunload事件,这有时会给我们带来麻烦。  
     我知道的有两种解决方法:1、<a href=”###”/>3个#号可以防止锚点,2、根据事件顺序onclick=”return false;”不执行window.onbeforeunload->href两个事件。  
    测试1、测试2、测试3 都不会触发window.onbeforeunload事件。  
<a href=”javascript:void(0);”>测试0</a>
<a onclick=”return true;” href=”#”>测试1</a>
<a onclick=”return true;” href=”###”>测试2</a>
<a onclick=”testMothed();return false;” href=”javascript:alert(22)”>测试3</a>
<a onclick=”testMothed();” href=”javascript:alert(22)”>测试4</a>
</body>
</html>

About 智足者富

http://chenpeng.info

One thought on “解决a标签会触发window.onbeforeunload的问题

  1. 张佳佳

    赞,谢谢分享

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>