日期:2014-05-17 浏览次数:20412 次
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退出或是其他情况),那自然就不会再执行这个定时器操作了,定时器最后更新的用户在线时间,就是用户退出时间了。
------解决方案--------------------
或者换一种思路,前台还是定时给后台发消息,后台建立一个监听,接收前台发送的消息,一旦浏览器关了,监听不到前台发送的消息,那么就执行事先准备好的方法。