2012-11-23 60 views
0

在我的应用程序中,当用户注销时,浏览器已关闭。在浏览器关闭时,我正在发出警报。现在我想要的是,如果我直接关闭浏览器窗口警报应该来,但如果窗口关闭通过注销警报不应该因为我已经显示另一个确认消息的注销。在浏览器关闭时显示提醒,但在注销时关闭时不显示提醒

function closeEditorWarning(){ 
    for (var i=0;i<childWindow.length;i++) { 
     if (childWindow[i] && !childWindow[i].closed) childWindow[i].close(); 
     if(i==0) { 
      alert("This will close all open e-App applications"); 
     } 
    } 
    window.close(); 
} 
window.onbeforeunload = closeEditorWarning; 

这是我的注销代码

$('#'+id).click(function(event){ 
     event.preventDefault(); 
     $('#centerContent').load('<%=request.getContextPath()%>/'+target); 
    }); 
} else { 
    $('#'+id).click(function(event){ 
     event.preventDefault(); 
     var r=confirm("logout"); 
     if (r==true) 
     { 
      flag=true; 
      for (var i=0;i<childWindow.length;i++) { 
       if (childWindow[i] && !childWindow[i].closed) childWindow[i].close(); 
      } 
      window.close(); 
     } else { } 
    }); 
} 
+0

是有记录的萤火 – defau1t

+0

丑陋的黑客攻击的任何错误,分配'window.onbeforeunload当用户确认注销时,将其设为空。 –

+0

设置一个beforeunload监听器。如果用户注销,请将该侦听器作为注销过程的一部分移除。否则,它在beforeunload事件发生时被调用。 – RobG

回答

0

使用的标志。单击日志关闭时设置标志。

显示警报

0

设置与用户的登录状态,并在接近检查隐藏字段前检查标志:

if($('#isUserLogIn').text()=='true') 
{ 
    //show alert 
}