iframe嵌套页面 跨域_h5 iframe跨域通信的解决方案之借尸还魂

本文详细介绍了在iframe嵌套场景中解决跨域通信的问题。通过创建一个代理iframe(proxy)进行参数传递,利用localStorage事件监听或window.top对象触发父页面(main)的方法,实现child与main之间的交互。讨论了两种方法的实现细节、浏览器兼容性和适用场景,指出这些方法仅支持子到父的单向通信,并提醒避免传输重要数据。
摘要由CSDN通过智能技术生成

b06e8b0234c69df6022d558c7153fbe0.png

1. 问题描述:
两个不同系统之间的iframe需要进行进行交互,例如在main(代指主页面 80端口)里用iframe嵌套了child(代指嵌套的iframe 8080端口),child进行一些操作成功后,通知main,main再进行相应的操作。2. 解决思路:
利用iframe可以跨域的特点,
1. 在child内部动态创建一个url为proxy(代指和main在同一系统内的页面 80端口)的iframe,
2. 通过url把参数传递给proxy,
3. 最后再利用proxy去触发main的相应操作

e7efeede783795e316a72f0670e41861.png

3. 实现方式:

  • 方式一
    通过监听storage的变化来实现通知main页面

main

<!DOCTYPE html>
<html lang="en">
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值