JavaScript实现POP窗体的onclose功能

本文介绍如何在JavaScript中处理POP窗体的关闭事件,特别是在IE浏览器上。通过设置全局变量和利用onunload或onbeforeunload事件,根据用户点击的不同按钮(保存、关闭)来决定执行不同的数据库操作,如更新或删除记录,并关闭窗体。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:

    弹出窗体上有三个按键分别为保存,关闭和右上角IE自带的关闭按键。

    点击保存按键,将窗体的内容在数据库中Update为保存的状态,关闭本窗体。

    点击关闭按键,在数据库中删除窗体表示的记录,关闭本窗体。

    点击IE自带的关闭按键,在数据库中删除窗体表示的记录,关闭本窗体。

前两个功能很好实现,我用的是分别提交到不同的Action,然后进行处理,根据处理的结果来确定是关闭本窗体还是提示错误信息。第三个功能不太好实现,因为那个关闭按键是IE自带的,对怎么捕捉这个事件我不太清楚。记得在用Delphi开发时,窗体有个onclose事件,可以在这个事件中添加功能。那么HTML是不是有类似的情况呢?

    查了一下资料,发现了<body>标签里有两个事件,onunloadonbeforeunload。呵呵,方法有了。

解决思路:

    设置全局变量,来确定是点击了哪个按钮,因为最后都要关闭窗体,所以编写一个函数,统一对窗体的关闭进行处理。该处理过程是首先首先根据全局变量判断点击了哪个按键,然后进行相应的处理。最后在bodyonunload或者onbeforeunload中调用这个函数。

代码摘要:

    //全局变量

var btn_flg = 0;

 

//点击关闭按键

function fun_close(){

      btn_flg = 0;

      window.close();

}

 

//点击保存按键

function fun_save_message(){

      btn_flg = 1;

      window.close();

}

   

    //

    function fun_on_unload(){

      //点击×和关闭按键

      if (btn_flg == 0){

        document.frm.action='del_invite_receiver.php';

        document.frm.submit();

        window.opener.location.reload();

      }

      //点击保存按键

      if (btn_flg == 1){

        document.frm.action='save_invite_receiver.php';

        document.frm.submit();

        window.opener.location.reload();

      }

}

 

最后在<body>标签中添加上边的函数:

<body onbeforeunload="fun_on_unload();">
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值