曾经有个linux高手同事,直接修改apache的源代码获得浏览器上面的那个"X"的get事件解决过这种问题。
解决方案 »
- 如何自定义jiathis分享按钮里的图片
- CMS系统中,导入excel数据问题
- php发送邮件怎样才能修改发件人名称请老师指教
- An error has occurred when creating this preference page.
- 点击某图标,可以往文本区域添加数据 怎么实现的?
- linux中,怎么样定时让某一个php程序运行呢?
- 如何用php实现倒计时功能,并将时间在网页上显示出来?
- 哪位有k666站长站的帐户?借用一下
- javascript 中得到一个变量的值,用<a href=>怎么传给另一个页面。
- 不用框架,纯PHP,能实现这样的功能吗?有很多页面,有插入删除修改功能,只写一种增删改方法,其他页面也能共用这一个方法
- 做了个英文转换颜色的函数
- require_once的问题
<html>
<head>
<title>
</title>
</head>
<body onload='alert("aaaa")' onunload='alert("bbbbb")'>
</body>
</html>在窗体的onload/onunload 事件都可以正常触发,并输出aaaa,bbbbb还有楼上说的
“如果在任务栏点右键关闭,这个js是捕捉不到的”
是可以捕捉到的!
给个例子
然后在函数里去session_unset().
不过在试验的过程中,
发现PHP在解释语句时,
就已经将session unset 了。。
而不是像想像中的那样。在关页面时才unset..这方法不行~~~~~~~~~本人正在考虑另一种方法。。
将Session和Cookie结合起来,来失现。。
不知结果如何~~~~
<head>
<title>
</title>
</head>
<body onload='alert("start!")' onunload='someAjaxFunction();'>
</body>
</html>然后在你的someAjaxFunction()中完成对服务端的调用。。就学么简单。不过俺不用PHP,不知道具体PHP如何写,不过应该jsp, aspx差不多
曾经有个linux高手同事,直接修改apache的源代码获得浏览器上面的那个"X"的get事件解决过这种问题。
一看就是不懂装懂的,按X是不会有什么GET事件的,用js的onunload才是正解
竟然能修改服务器端程序解决客户端局限的问题
哈哈哈哈哈哈哈
振兴中国IT的希望就寄托在这些高手身上了
<script language=javascript>
function LeaveWin()
{
alert("关闭");
}
</script>
=======================
同意楼上的楼上,不过说这句化的人意思可能是浏览器在被点"X"关闭时发了一个get请求,通过这个get请求来invalidate session,不过事实上我没有截获这个get请求!!!
请大家看下面的例子。
session.php:<?php
session_start();
$_SESSION["A"]="AA";
?>
<a href=session2.php>aa</a>
session2.php<?php
session_start();
?>
<html>
<head>
<script language="javascript">
function onClose()
{
alert("begin");
<?php
unset($_SESSION["A"]); //当程序解释到这句话时,就给session失效了(并不是等到关闭
// 时)。。所以下面的页面
?> //将在5秒后,自动刷新,而不是显示session的值。在关闭窗体时,
alert("end"); //它也正常的弹出'begin','end'! 所以我认为弄onunload不行。。
}
</script>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body onUnload="onClose()">
<?php
if($_SESSION['A']=='') //==后面是二个单引号
{
echo '请从面session.php过来。将自动刷新!'."<br>";
echo'<meta http-equiv="refresh" content="5;url=session.php">';
}
else
{
echo 'seesion的使用。';
echo $_SESSION["A"];
}
?>
</body>
</html>Ajax,以前没接触过。
试试~~
换个思路来解决:
onunload中触发事件,用ajax立即通知服务器端,服务端得到消息后开始倒计时,如果客户端不是关闭浏览器触发onunload事件,比如按了下F5刷新当前页,那就在刷新后在onload事件中再次通知服务端——“我”回来了。服务端得到消息后中端倒计时;如果是真正的关闭浏览器,倒计时时间到后让session失效,至于倒计时的时间完全可以根据客户端的访问速度来决定
1:刷新处理。
2:如果打开多个窗口,如TT,那么我关闭一个,岂不是都注销了。
在IE中,可以用onunload或者onbeforeunload,但是对多窗口浏览器如maxthon是无效的
---
不过我发现下面这个聊天网站,假如你同时打开两个一样的聊天室,无论是用单页面还是多页面浏览器
然后再关闭另外一个
则剩下的那个聊天室会立即显示您的"替身"已经离开
明显是捕捉到了关闭事件
------
但是这个代码找不到,不知道是如何实现的
有兴趣的可以去实验下
http://www.vqq.com/inset/201.html
没什么蹊跷在里面,她只不过使用了一个隐藏的Iframe来捕获onunload事件。如果你开2个窗口,在网速特别慢的情况下,去刷新任何一个窗口,在刷新过程中,另外一个窗口
会显示有一个人离开了,当完成刷新时,没有刷新的那个窗口有会显示多了一个人,但是你会发现,之前消失的那个人的ID和后来显示的那个人(其实应该是同一个人,因为我在另外一个窗口刷新了)的ID不一样!
if(event.clientX<0&&event.clientY<0)
{
alert('关闭');
}
else
{
alert('刷新');
}
</script>
ShadowSniper(欲练神功...(摘自《葵花宝典》)) ( ) 信誉:96 Blog 2006-12-4 11:10:01 得分: 0
曾经有个linux高手同事,直接修改apache的源代码获得浏览器上面的那个"X"的get事件解决过这种问题。
一看就是不懂装懂的,按X是不会有什么GET事件的,用js的onunload才是正解
-----------------------------------------------------------------------是我描述错误,是当用户按X的时候,向apache发送一个请求,他具体怎样修改的我不知道,不过他的确是做到了.
我那个同事不懂web编程,也不会js,直接修改的apache的源码重新编译,他就使用了这种方式去实现,不管方法妥不妥,至少他确实实现了.PS:不要跟这倚老卖老,别人都tm不懂,你很懂是吧,方法好不好我没说,我只是来描述人家通过这种方法实现了.