博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[JavaScript]父子窗口间参数传递
阅读量:4646 次
发布时间:2019-06-09

本文共 631 字,大约阅读时间需要 2 分钟。

概述

当页面嵌入一个iframe,或者打开一个子窗口。这个时候如果父窗口需要与子窗口之间通讯,如果直接用DOM访问对方窗口window,会受到跨于安全机制影响。

javascript提供一个方法,可以解决这个问题,window.postMessage()

示例

1.与iframe通讯

主页面:

    

子页面:

    

双方页面监听"message"事件,父页面等待子页面加载完毕后调用子窗口的window.postMessage发送信息,子窗口收到信息后触发"message"回调函数,回调函数中往父窗口的window.postMessage发送信息,父窗口收到消息后触发"message"回调函数

2.与子窗口通讯

跟iframe不同之处在于,可能是出于某种安全机制的设计,通过window.open返回的window对象无法让父窗口监听该window对象的事件。

这就意味着父窗口无法通过事件去得知子窗口何时加载完毕,并且在何时适合调用window.postMessage发送信息

有一种解决办法是让子窗口通过window.opener对象,调用父窗口的方法来到通知它子窗口已经就绪。

主页面:

 

    open

 

子页面:

    

注意:这种方式在跨域下是无效的,因为跨域下双方页面不能通过获取对方window对象直接调用其方法。

 

转载于:https://www.cnblogs.com/yiyide266/p/11064842.html

你可能感兴趣的文章
线程之线程同步(2)
查看>>
cxf 例子
查看>>
【.net 深呼吸】获取日期的干支纪年
查看>>
Docker镜像分层技术
查看>>
elastic-job详解(三):Job的手动触发功能
查看>>
SQLite中使用全文搜索FTS
查看>>
Shell 文件测试运算符
查看>>
Shell 示例:将指定的文件内容转换为大写
查看>>
白盒测试实践项目(day5)
查看>>
rem、em、px、pt及网站字体大小设配
查看>>
Alpha版本冲刺(五)
查看>>
JQuery.Boxy (一) 弹出层
查看>>
问题 1025: [编程入门]数组插入处理
查看>>
Leetcode 416. Partition Equal Subset Sum
查看>>
表单标签
查看>>
163相册验证码图片的识别手记之二 --- 识别[转]
查看>>
hive中grouping sets的使用
查看>>
Factorials
查看>>
回车登陆代码(兼容IE和FF)
查看>>
搞懂Python的类和对象名称空间
查看>>