站内搜索: 请输入搜索关键词

当前页面: 开发资料首页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分钟向服务器发一条消息,如果服务器没受到消息就判定用户退出,不知道这个方法可行不,大家给点意见



↑返回目录
前一篇: log4j如何配置一个按照日期输出一个LOG,说白了就是每天产生一个LOG文件到指定的文件夹中
后一篇: 据说spring包装下的JDBC用起来比hibernate好?