js打开一个新的浏览器窗口并监听窗口关闭然后刷新

实现思路:
使用Window open() 打开并创建一个窗口对象,使用定时器监听窗口关闭,当窗口关闭后刷新当前页面并停止监听器

实现代码

//打开窗口
  window.name = "origin";
    var windowObjectReference;
    var strWindowFeatures = "width=1000,height=500,menubar=yes,location=yes,resizable=yes,scrollbars=true,status=true";//窗口设置
    //url需打开的窗口路径例如:www.baidu.com
    function openRequestedPopup(url) {
        windowObjectReference = window.open(url, "name", strWindowFeatures);
    }
//循环监听
var loop = setInterval(function() {
      if(windowObjectReference .closed) {
         clearInterval(loop);//停止定时器
         location.reload();//刷新当前页面
      }
}, 1000);

Window open() 方法
open() 方法用于打开一个新的浏览器窗口或查找一个已命名的窗口。

reload()方法
reload()方法用于刷新当前文档。
reload() 方法类似于你浏览器上的刷新页面按钮。

setInterval()
一个定时器

clearInterval()
clearInterval() 方法可取消由 setInterval() 函数设定的定时执行操作。

监听浏览器窗口关闭刷新,而不监听系统页面的Tab框,可以通过JavaScript的事件监听来实现。通常,浏览器窗口关闭事件是通过监听`window`对象的`beforeunload`事件来捕捉的,而刷新事件可以监听`beforeunload`事件或者`unload`事件,具体代码示例如下: ```javascript // 监听窗口关闭前事件 window.addEventListener('beforeunload', function(event) { // 在这里可以处理一些关闭窗口前的逻辑 }); // 监听窗口刷新事件 window.addEventListener('beforeunload', function(event) { // 在这里可以处理一些刷新页面前的逻辑 }); // 如果还想监听浏览器关闭按钮导致的刷新行为,可以添加以下代码 window.onbeforeunload = function(event) { // 在这里可以处理一些关闭刷新页面前的逻辑 }; ``` 这些监听器只会对浏览器窗口级别的操作作出响应,而不会对系统页面的Tab框产生反应。如果你想要实现更细致的控制,例如区分是用户主动关闭窗口还是仅仅刷新页面,你可能需要在`beforeunload`事件处理函数中加入逻辑判断: ```javascript window.addEventListener('beforeunload', function(event) { event = event || window.event; // 检查事件来源是否是用户直接操作关闭窗口 if (event.clientX === window.screenX + window.outerWidth) { // 在这里处理窗口关闭逻辑 } else { // 在这里处理页面刷新逻辑 } }); ``` 需要注意的是,随着浏览器对于隐私和安全性的加强,某些浏览器可能会限制`beforeunload`事件中弹出的对话框,而`unload`事件在某些浏览器中可能不被触发,特别是在关闭刷新标签页时。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值