日期:2014-05-17 浏览次数:20475 次
function window.onbeforeunload()
{
//用户点击浏览器右上角关闭按钮或是按alt+F4关闭
if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)
{
// alert("点关闭按钮");
document.getElementById("hiddenForm:hiddenBtn").click();
// window.event.returnValue="确定要退出本页吗?";
}
//用户点击任务栏,右键关闭。s或是按alt+F4关闭
else if(event.clientY > document.body.clientHeight || event.altKey)
{
// alert("任务栏右击关闭");
document.getElementById("hiddenForm:hiddenBtn").click();
// window.event.returnValue="确定要退出本页吗?";
}
//其他情况为刷新
else
{
// alert("刷新页面");
}
}
<body scroll="no" onbeforeunload="return CloseEvent();" onunload="UnLoadEvent()" >
</body>
<script language="JavaScript" type="text/javascript">
var DispClose = true;
function CloseEvent()
{
if (DispClose)
{
return "是否离开当前页面?";
}
}
function UnLoadEvent()
{
DispClose = false;
//在这里处理关闭页面前的动作
}
</script>
------解决方案--------------------
后台页面方法aa() ?难道是aspx.cs里面的方法?
这个你不能掉吧。如果需要掉用可以使用ajax的方法,然后去执行aa()方法。返回一个结果。
------解决方案--------------------
MARK下
------解决方案--------------------
我的思路是在前台用js做一个定时器,通过ajax定时的更新用户当前的在线时间,如果用户退出系统(不管是点按钮退出或是点浏览器的X退出或是其他情况),那自然就不会再执行这个定时器操作了,定时器最后更新的用户在线时间,就是用户退出时间了。
------解决方案--------------------
或者换一种思路,前台还是定时给后台发消息,后台建立一个监听,接收前台发送的消息,一旦浏览器关了,监听不到前台发送的消息,那么就执行事先准备好的方法。