js监听window.open()的关闭事件

本文介绍了两种检测浏览器窗口关闭的方法:一是通过循环检查窗口状态;二是利用onbeforeunload事件监听刷新与关闭操作,并提供了判断刷新还是关闭的具体实现。

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

//弹出窗口:var openWin = window.open(url, name, "top=100,left=100,width=100,height=100,menubar=no,toolbar=no,location=no,status=yes,resizable=yes");

方法一:循环检查窗口是否关闭

var winLoop = setInterval(function() { 
        if(openWin.closed) {  
            clearInterval(winLoop); 
            alert("closed");  ...
        } 
}, 1000); 

方法二:onbeforeunload事件(刷新与关闭都会触发

window.onbeforeunload =function() {
        alert("closed");
        //window.opener.parentFunction();调用父画面方法
        ...
    }

$(window).on("beforeunload", function(e) {
        alert("closed");
        ...
});

刷新不调用onbeforeunload

window.onbeforeunload = function(){
    var n = window.event.screenX - window.screenLeft;
    var b = n > document.documentElement.scrollWidth-20;
    if(b && window.event.clientY < 0 || window.event.altKey)  
    {    
        alert("是关闭触发而非刷新"); 
    }else{
        alert("是刷新触发而非关闭");
    }   
}


参数说明:window.open(pageURL,name,parameters)
pageURL:打开指定的页面的URL,可选。如果没有指定URL,打开一个新的空白窗口
name:窗口的名称,可选。指定target属性或窗口的名称。支持以下值:

  • _blank - URL加载到一个新的窗口。这是默认
  • _parent - URL加载到父框架
  • _self - URL替换当前页面
  • _top - URL替换任何可加载的框架集
  • name - 窗口名称

parameters:为窗口参数,可选。一个逗号分隔的项目列表。支持以下值:

  • 参数 | 取值范围 | 说明
  • alwaysLowered | yes/no | 指定窗口隐藏在所有窗口之后
  • alwaysRaised | yes/no | 指定窗口悬浮在所有窗口之上
  • depended | yes/no | 是否和父窗口同时关闭
  • directories | yes/no | Nav2和3的目录栏是否可见
  • height | pixel value | 窗口高度
  • hotkeys | yes/no | 在没菜单栏的窗口中设安全退出热键
  • innerHeight | pixel value | 窗口中文档的像素高度
  • innerWidth | pixel value | 窗口中文档的像素宽度
  • location | yes/no | 位置栏是否可见
  • menubar | yes/no | 菜单栏是否可见
  • outerHeight | pixel value | 设定窗口(包括装饰边框)的像素高度
  • outerWidth | pixel value | 设定窗口(包括装饰边框)的像素宽度
  • resizable | yes/no | 窗口大小是否可调整
  • screenX | pixel value | 窗口距屏幕左边界的像素长度
  • screenY | pixel value | 窗口距屏幕上边界的像素长度
  • scrollbars | yes/no | 窗口是否可有滚动栏
  • titlebar | yes/no | 窗口题目栏是否可见
  • toolbar | yes/no | 窗口工具栏是否可见
  • width | pixel value | 窗口的像素宽度
  • z-look | yes/no | 窗口被激活后是否浮在其它窗口之上

具体详情可看:https://developer.mozilla.org/zh-CN/docs/Web/API/Window/open

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值