window.open 打开窗口的子画面向父级画面传值并返回父画面(幅画面不刷新)

在前端开发中,经常会使用 window.open() 打开新窗口,但是从子window 向父window 传值并返回父window画面且父window 不刷新 并不常有。
现在介绍下子window 向父window 传值,并返回父window画面,且父window 不刷新的实现方法

首先,需要在父级画面设置 window.name

window.name = window.location.pathname;// 这里使用浏览器路径作为 windowName
window.open("http://www.xxxx.com");// 打开子画面

window.open() 中的参数网上有很多说明,这里不再赘述。

然后,在子画面获取父window 实例,通过父级window,给父级元素赋值

const parentWindow = window.opener;// 获取父级window
if(parentWindow){
    parentWindow.document.getElementById("id").value= "xxxx";// 给父级画面的元素赋值
    window.open("", parentWindow.name).focus();// 返回父级画面
    window.close();关闭当前画面
}

返回父级画面的主要方法是window.open("", parentWindow.name).focus();,window.open()的第一参数一定要是空字符串,如果传递的是父级路径,则父window会刷新;其次windowName 一定要是父级window设置的windowName,否则会打开一个空白页。
.focus()这个方法有没有都可以,它主要功能是聚焦到打开的画面。

以上就是window.open 打开窗口的子画面向父级画面传值并返回父画面(父画面不刷新) 功能的介绍

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值