当前位置: 首页 > news >正文

Iframe窗口通信

在组件中使用Iframe,只需要传入src即可。

<iframe id="myIframe" style={{ width: '100%', height: '100%', border: 'none' }} src={src} />

想要与Iframe通信,需要监听message来接收消息。

window.addEventListener('message', receiveMessage);

父页面和子Iframe都是一样的接收方法

  // 接收const receiveMessage = (event: any) => {// 判断来源,过滤别的窗口发送的消息,event是发送时定义的数据if (event.origin === baseUrl) {let params: any = event.data || '{}';console.log('receiveMessage Successful', params);}};

发送时,父页面发送给子Iframe

  // 发送const postMessage = (key: string, data: object) => {const myIframe = document.getElementById('myIframe') as HTMLIFrameElement;if (!myIframe) return;//使用的是contentWindowconst childWindow = myIframe?.contentWindow;//自定义发送的数据格式const dataJson = {message: {  data, },};//子Iframe的地址let targetUrl = baseUrl;//使用的是childWindowchildWindow?.postMessage(JSON.stringify(dataJson), targetUrl);console.log('sendMessage Successful');};

子Iframe发送给父页面

export const postMessage = (key, data) => {const dataJson = {message: {  data,},};let targetUrl = myTargetUrl//使用window.parentwindow.parent?.postMessage(JSON.stringify(dataJson), targetUrl);console.log('sendMessage Successful');
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • CentOS上使用Mosquitto实现Mqtt主题消息发布和订阅mqtt主题消息连同时间戳记录到文件
  • 爬虫的流程
  • 【Docker】Docker 常见问题及解决方案
  • MyBatis-Plus 分页插件
  • Gitee基本指令操作
  • 华硕电脑用U盘方式重装系统
  • 【iOS】push和pop、present和dismiss
  • 记某学校小程序漏洞挖掘
  • 13年408计算机考研-计算机网络
  • 深度解读 2024 Gartner DevOps 魔力象限
  • 基于YOLOv5s的无人机航拍输电线瓷瓶检测(附数据集与操作步骤)
  • LLM - 理解 多模态大语言模型(MLLM) 的 对齐微调(Alignment) 与相关技术 (五)
  • DK5V100R20HL贴片12V 2.7A同步整流芯片
  • TensorRT-LLM——优化大型语言模型推理以实现最大性能的综合指南
  • 多目相机贴图
  • [PHP内核探索]PHP中的哈希表
  • 3.7、@ResponseBody 和 @RestController
  • Apache的基本使用
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • eclipse的离线汉化
  • gulp 教程
  • HomeBrew常规使用教程
  • Javascript基础之Array数组API
  • mysql常用命令汇总
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • NSTimer学习笔记
  • Python_OOP
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • tweak 支持第三方库
  • vue中实现单选
  • Windows Containers 大冒险: 容器网络
  • 从重复到重用
  • 机器学习学习笔记一
  • 简析gRPC client 连接管理
  • 如何解决微信端直接跳WAP端
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 突破自己的技术思维
  • 我是如何设计 Upload 上传组件的
  • 一天一个设计模式之JS实现——适配器模式
  • 以太坊客户端Geth命令参数详解
  • ​14:00面试,14:06就出来了,问的问题有点变态。。。
  • # Redis 入门到精通(八)-- 服务器配置-redis.conf配置与高级数据类型
  • #微信小程序(布局、渲染层基础知识)
  • (03)光刻——半导体电路的绘制
  • (11)MATLAB PCA+SVM 人脸识别
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (k8s)Kubernetes 从0到1容器编排之旅
  • (Matlab)使用竞争神经网络实现数据聚类
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (三)终结任务
  • (十三)Maven插件解析运行机制