简单实现监听window.open打开的页面close事件

实现原理:

利用window.open返回的window对象,监听window.onload事件,在回调中监听window.unload事件,unload事件表示页面卸载,即实现了close目标

let page = window.open('www.baidu.com')
page.onload = function(){
    // unload事件放在load事件中是因为直接监听unload事件,页面在打开时会直接触发一次unload事件
    page.onunload = function(){
        // 此处写close事件回调
    }
}

此处只是提供一个思路,代码有很多不严谨的地方

例如:在window.open的页面覆盖了load、unload事件,代码就无法正常执行了,需要小伙伴自己补充啦

将`window.open`动作存储到`sessionStorage`是一种在客户端保存信息的方式,可以在浏览器会话结束之前保持数据的存在。这通常用于需要用户界面之间共享数据的情况。为了将`window.open`的结果存储到`sessionStorage`,你可以按照以下步骤操作: ### 步骤一:打开新窗口 首先,在JavaScript中使用`window.open`函数打开一个新的窗口。 ```javascript let newWindow = window.open('https://example.com', '_blank'); ``` 这里,我们创建了一个新的窗口并指定了目标窗口名称为 `_blank` ,这意味着新窗口将在当前页面的新标签页中打开。 ### 步骤二:存储窗口ID或状态信息 接着,我们需要找到如何将新窗口的信息存储起来。一种方法是在新窗口关闭或内容加载完毕时,将窗口的状态(如窗口的URL、标题等)或某个特定值(例如窗口ID)存储到`sessionStorage`。 假设我们在新窗口打开后希望将其URL存储起来,可以这样做: ```javascript newWindow.onload = function() { // 获取新窗口的URL let url = newWindow.location.href; // 将URL存入sessionStorage sessionStorage.setItem('newWindowUrl', url); }; ``` ### 步骤三:从`sessionStorage`获取信息 当需要从新打开的窗口获取信息时,可以使用`sessionStorage.getItem()`函数。例如: ```javascript // 从sessionStorage读取新窗口的URL let savedUrl = sessionStorage.getItem('newWindowUrl'); if (savedUrl) { console.log(`新窗口的URL是: ${savedUrl}`); } else { console.log("没有从sessionStorage检索到新窗口的URL"); } ``` ### 相关问题: 1. **何时使用sessionStorage?** 使用`sessionStorage`通常是为了在不同页面或表单之间存储临时数据,这些数据会在用户关闭浏览器会话前一直保留。 2. **区别于localStorage?** `localStorage`和`sessionStorage`的主要区别在于生命周期上:`localStorage`的数据在浏览器关闭后仍然存在,而`sessionStorage`的数据则仅在浏览器会话结束后消失。 3. **如何清除sessionStorage的内容?** 可以通过`sessionStorage.removeItem(key)`删除指定键名对应的所有值,或者使用`sessionStorage.clear()`清除所有已设置项。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值