测试代码:
***************************************************************************************
一。test.jsp
<html>
<head>
</head>
<body>
<script language="javascript">
var closepage;
function window.onbeforeunload(){
alert("onbeforeunload!");
closepage="no";
}
function window.onunload(){
alert("onunload!");
}
function window.onload(){
alert("onload");
}
</script>
<%
session.setAttribute("Is","Yes");
%>
</body>
</html>
***************************************************************************************
二。get.jsp
<%=session.getAttribute("Is")%>
***************************************************************************************
测试结果:
一.分页浏览器:
1.单个页面--情形一
打开:onload();
刷新:onbeforeunload(),onunload(),onload();
关闭(通过标签关闭):onbeforeunload(),onunload();//session存在 (PS:在IE7.0中,单页面是不能通过关闭标签方式来关闭页面的)
关闭(关闭浏览器):onunload();//session销毁
2.多页面--情形二
打开:onload();
刷新:onbeforeunload(),onunload(),onload();
关闭(通过标签关闭):onunload();//session存在
关闭(关闭浏览器):onunload();//session销毁
二.单页面浏览器:--情形三
打开:onload();
刷新:onbeforeunload(),onunload(),onload();
关闭:onbeforeunload(),onunload();session销毁
***************************************************************************************
运用:
在情形二和情形三,只要监视页面的onbeforeunload()和onunload()事件,就可以在浏览器关闭的情况下销毁session.而在情形一中则无法实现,至少我是没有想到办法。这就可以解释为什么在IE7.0中,单面页情况下,不能通过关闭标签的方式来关闭页面(即情形一等同于情形二)。