CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  企业开发 >  Loushang开发平台

触发浏览器的关闭按钮的事件:onbeforeunload 方法的编写

楼主huangdos(醉剑仙)2006-05-22 15:54:32 在 企业开发 / Loushang开发平台 提问

我们作很多网站的时候,都回碰到用户不点击“注销”等类似功能的按钮来退出系统,而是直接关掉浏览器。  
  这就造成,我们的服务器,会增加很多不必要的负担。  
  为了解决这个问题,我们可以通过使用事件:“onbeforeunload”来进行我们想要的一些操作。  
  先举一个简单的例子:  
   <html>  
   <script>  
   function   LeaveWin(){    
   alert('要关闭吗')  
   }    
   </script>  
   <body   onbeforeunload="LeaveWin()">  
   </body>  
   </html>  
     
  我们把这段代码对应的html页面使用IE打开,然后关闭IE,我们就会发现,页面弹出了一个对话框:“要关闭吗”。  
  这说明,在关闭浏览器的时候,我们触发了LeaveWin()方法。  
   
  通过这个思路,我们就可以在自己的网站系统上加上对应的方法来。  
   
  例如:在Loushang平台中,注销的对应的URL是:logout.cmd?method=logout  
  那么,我们只要在框架页面(也叫主页面)上,加上如下的代码即可:  
   
  <script   for="window"   event="onbeforeunload">      
              if(document.body.clientWidth-event.clientX<   170&&event.clientY<   0||event.altKey){       top.location.href="logout.cmd?method=logout";  
                        alert("欢迎下次光临");    
              }  
  </script>  
  问题点数:0、回复次数:3Top

1 楼huangdos(醉剑仙)回复于 2006-05-22 16:00:16 得分 0

不过,上面说的这种方法有一定的缺陷。  
  如果我们不是使用IE来进行页面的浏览的话,那么onbeforeunload 就可能不会被触发。  
  那就是,onbeforeunload 事件的触发,在使用IE的情况下才能确保一定生效。  
  其它的浏览软件,例如:TheWorld   就不行。  
  Top

2 楼xiaolongnv1212()回复于 2006-05-27 01:10:36 得分 0

如果不注销,服务器会维持多久的会话?直接随着浏览器关闭会话行么Top

3 楼huangdos(醉剑仙)回复于 2006-05-30 11:09:48 得分 0

如果不注销,直接关闭浏览器的话,那么会话会维持多久,就看服务器上对于会话的活动时间的设置了。  
  一般是30分钟。  
  如果客户端超过30分钟没有响应,那么即使没有关掉浏览器。会话也会失效的。Top

相关问题

关键词

得分解答快速导航

  • 帖主:huangdos

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo