//框架网页也适用的关闭提示
<script language="javascript">
window.onbeforeunload = function() //author: meizz
{
var n = window.event.screenX - window.screenLeft;
var b = n > document.documentElement.scrollWidth-20;
if(b && window.event.clientY < 0 || window.event.altKey)
{
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("GET", "sessionEnd.asp", false);
xmlhttp.send(null);
}
}
</script>
sessionEnd.asp:
<%
Session.Abandon()
%>
<script language="javascript">
window.onbeforeunload = function() //author: meizz
{
var n = window.event.screenX - window.screenLeft;
var b = n > document.documentElement.scrollWidth-20;
if(b && window.event.clientY < 0 || window.event.altKey)
{
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("GET", "sessionEnd.asp", false);
xmlhttp.send(null);
}
}
</script>
sessionEnd.asp:
<%
Session.Abandon()
%>
window.onbeforeunload = function() //author: meizz
{
var n = window.event.screenX - window.screenLeft;
var b = n > document.documentElement.scrollWidth-20;
if(b && window.event.clientY < 0 || window.event.altKey)
{
alert("bye bye!"); //这个放在你的网页, 可以判断是否为刷新
}
}
</script>
关闭窗口时保存数据或其操作的办法:特点是能判断是刷新还是关闭。
<SCRIPT language="javascript">
function IfWindowClosed()
{
var win = null;
try
{
window.opener.name = "ss";
if ( window.opener.name != "ss" )
{
win = window.open("quit.asp","","width=100,height=100,left=10000,top=10000");
window.setTimeout("window.close();",0);
}
window.opener.name = "";
}
catch(e)
{
win = window.open("quit.asp","","width=100,height=100,left=10000,top=10000");
window.setTimeout("window.close();",0);
}
}
window.setInterval("IfWindowClosed()",100);
window.setTimeout("window.close();",510);
</SCRIPT>
---------------
用onunload事件打开上面的文件 (打开文件时,可以最小化或做其他处理)
quit.asp为保存数据的文件,上面的文件用来检测窗口是关闭还是刷新
测试无问题
保持比session的超时时间更短的“心跳”,这样连“忽然断了网”也
不怕了,呵呵。
但是还是有个毛病:setTimeout()怕alert()不关啊~~
我补充一句,163.com不是简单的在Cookie上做了手脚,他上面有一个cgi链接,让我很是有点疑惑。