当前页面: 开发资料首页 → JSP 专题 → 如何在关闭浏览器时触发事件
如何在关闭浏览器时触发事件
摘要: 如何在关闭浏览器时触发事件
我有一个程序,必须在用户退出时清空session里的东西,
如果用户点退出按钮,完全OK,但如果他把浏览器直接关闭就完蛋了.
而且页面里有一个ocx控件也要求要点退出,在这个控件没关闭之前,其实应该禁止关闭IE的.
我现在的问题是:
1.能否在用户关闭浏览器时给个确认框,如果他点否就不让关闭.
2.在关闭时自动向服务器发一条消息,说明浏览器已经关闭.
<head>
test</head>
<body onbeforeunload="RunOnBeforeUnload()" onunload="RunOnUnload()">
<script language="javascript">
function RunOnBeforeUnload() {
window.event.returnValue = '关闭浏览器将退出系统.';
}
function RunOnUnload() {
alert('呵呵~');
}
</script>
</body>
有问题请联系QQ:963415
顶上,小飞飞的代码可以用
学习 要是不支持 浏览器不支持js代码呢!
mark
<head>
test</head>
<body onbeforeunload="RunOnBeforeUnload()" onunload="RunOnUnload()">
<script language="javascript">
function RunOnBeforeUnload() {
window.event.returnValue = '关闭浏览器将退出系统.';
}
function RunOnUnload() {
alert('呵呵~');
}
</script>
</body>
楼上的不全对啊
那也只是页面表层关闭啊
浏览器不支持的概率小呵
帮顶
一般考虑,一定是用页面的脚本代码实现,javascript最常用,也可用别的,如vbscript等!!!具体代码可在网上搜一下,相信楼主一定会有收获!
呵呵,看来我也弄用下啊。
通常不支持js的系统不大多见。
我给一个设定session时间的方法。
session.setMaxInactiveInterval(1200);//20分钟后session失效。
绝大多数 浏览器都支持js啊!除非你自己去开发个不支持js的浏览器!
如果浏览器崩溃了怎么办?或者网络突然断线你让浏览器怎么通知服务器?
正确的方法是监听Session的destroy事件来释放资源,靠浏览器事件根本不可行
<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)
{
window.event.returnValue = "";
}
}
</script>
谢谢楼上的各位,session监听器早就设了时间是半小时,但我希望能更精确一点.
wyhlgx(小飞飞)的方法也用过,onbeforeunload这个方法不知道为什么时灵是不灵的,
onunload到是都会执行,可我要做的不是alert,而是要向服务器发信息,
我在页面加载是创建了一个 XMLHttpRequest对象,在关闭时发送代码如下
var xmlHttp;
function createXMLHttpRequest(){
if(window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}
var url="/test/test.do?action=logout";
xmlHttp.open("post", url, true);
}
function logout(){
xmlHttp.send(null);
}
可服务器不知道为什么收不到,而且最严重的是每次刷新都会弹出对话框,很烦人
我目前打算采用的办法是页面每隔5分钟向服务器发一条消息,如果服务器没受到消息就判定用户退出,不知道这个方法可行不,大家给点意见