随笔-37  评论-155  文章-1  trackbacks-3
最近在做一个权限控制的项目,想让一个用户打开一个报表以后其他用户就不用在重新打开,我在打开的时候创建了一个临时表,然后象临时表里面添加、删除记录,所以在用户关闭页面的时候要删除记录,但是用户的离开方式多种多样,怎么在用户非法离开的时候既时的判断离开呢?最常见的非法离开就是关闭浏览器了。  
<script type="text/javascript" language="javascript">
            function closeWinform()
            
{
                
if(window.event.clientX>document.body.clientWidth&& window.event.clientY<0 || window.event.altKey)
                
{
                    document.all(
"Button1").click();
                }

            }

        
</script>
BODY   的   UNLOAD和onbeforeunload事件会在浏览器清除所加载的信息时被触发,也就是说页面在回送、重定向或被关闭的时候就会触发 Button1的点击事件,然后执行删除程序,但是现在对于特殊的浏览器,象遨游、ie7可以打开多个窗口的那种,通过这种获取用户鼠标位置的方法就有点问题了。他们获取的鼠标的坐标值就有可能小于客户窗体的宽度,所有window.event.clientX>document.body.clientWidth这个条件可以不要。
posted on 2008-04-25 14:26 Edwin dong 阅读(1187) 评论(6)  编辑 收藏 网摘 所属分类: javascrpt

评论:
#1楼  2008-04-28 17:58 | erhu [未注册用户]
这个方法我测试过,有一个不足地方【个人没有测试通过】
如果此页面有框架的话,此方法不能判断是刷新还是关闭事件!不知道还有什么好的方法判断是刷新还是关闭事件
  回复  引用    
#2楼 [楼主] 2008-04-29 10:56 | Edwin dong      
谢谢 erhu的经验分享。
  回复  引用  查看    
#3楼  2008-06-09 16:25 | 代理解决方案 [未注册用户]
不错!!
  回复  引用    
#4楼  2008-09-08 22:12 | Mingle      
请教个问题,在ie7中如何判断当前窗口是执行刷新还是关闭?你发布的代码只使用于ie6.0。

  回复  引用  查看    
#5楼 [楼主] 2008-09-09 08:50 | Edwin dong      
@Mingle
你说的ie7里面,是指有选项卡的情况吗,有选项卡的情况也是可以的,只是需要在条件判断里面去掉 window.event.clientX>document.body.clientWidth这层判断就好了。
  回复  引用  查看    
#6楼  2008-10-31 20:59 | 素素 [未注册用户]
去掉的话刷新的时候也会触发唉,怎么区分刷新还是关闭啊
  回复  引用    

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
Google站内搜索

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》



相关文章:

相关链接: