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

postMessage

A:端口3000

import React, { useEffect } from 'react';function App() {useEffect(() => {const childWindow = document.getElementById('child').contentWindow;const sendMessageToChild = () => {childWindow.postMessage("主页面消息", "http://localhost:4000");};const receiveMessageFromChild = (event) => {if (event.origin === "http://localhost:4000" && typeof event.data === "string") {console.log(event);const messageElement = document.getElementById('message');if (messageElement) {messageElement.innerHTML = `收到 ${event.origin} 消息:${event.data}`;}event.source.postMessage("主页面收到消息并回复", event.origin);}};window.addEventListener('message', receiveMessageFromChild, false);sendMessageToChild();return () => {window.removeEventListener('message', receiveMessageFromChild);};}, []);return (<div className="App"><iframe id="child" src="http://localhost:4000"></iframe><div><h2>主页面跨域接收消息区域</h2><div id="message"></div></div></div>);
}export default App;

B:端口4000

import React, { useEffect } from 'react';function App() {useEffect(() => {const parentWindow = window.parent;const sendMessageToParent = () => {parentWindow.postMessage("子页面消息收到", 'http://localhost:3000');};const receiveMessageFromParent = (event) => {if (event.origin === "http://localhost:3000" && typeof event.data === "string") {console.log(event);const messageElement = document.getElementById('message');if (messageElement) {messageElement.innerHTML = `收到 ${event.origin} 消息:${event.data}`;}event.source.postMessage("子页面收到消息并回复", event.origin);}};window.addEventListener('message', receiveMessageFromParent, false);sendMessageToParent();return () => {window.removeEventListener('message', receiveMessageFromParent);};}, []);return (<div className="App">hello world<div id="message"></div></div>);
}export default App;

http://www.lryc.cn/news/219951.html

相关文章:

  • 挑战100天 AI In LeetCode Day01(1)
  • 大数据疫情分析及可视化系统 计算机竞赛
  • uniapp调起拨打手机号
  • nacos配置中心docker部署、配置及 goLang 集成使用
  • PubDef:使用公共模型防御迁移攻击
  • 【QT5之QFtp模块】编译及使用
  • 数据结构 编程1年新手视角的平衡二叉树AVL从C与C++实现②
  • 代码随想录二刷Day 59
  • 由一个自动化脚本运维展开的思考
  • STM32F103C8T6第二天:按键点灯轮询法和中断法、RCC、电动车报警器(振动传感器、继电器、喇叭、433M无线接收发射模块)
  • 路由器基础(九):防火墙基础
  • 免费(daoban)gpt,同时去除广告
  • 如何使用Plex在Windows系统上搭建一个全能私人媒体影音站点
  • vue如何实现视频全屏切换
  • Shopee买家通系统一款全自动操作虾皮买家号的软件
  • 希亦内衣洗衣机和小米哪个品牌好?内衣洗衣机横评对比
  • 下载安装各种版本的Vscode以及解决VScode官网下载慢的问题
  • 双十一电视盒子哪个牌子好?测评工作室整理口碑电视盒子排名
  • 11.1总结
  • Proteus仿真--1602LCD显示电话拨号键盘按键实验(仿真文件+程序)
  • 如何防范AI诈骗
  • ICCV2023 Tracking paper汇总(一)(多目标跟随、单目标跟随等)
  • 【PG】PostgreSQL查看与修改参数
  • openGauss学习笔记-115 openGauss 数据库管理-设置安全策略-设置密码安全策略
  • 如何更好地理解甜葡萄酒和干葡萄酒的区别?
  • 基于单片机的车载太阳能板自动跟踪系统研究
  • 前端传字符串的开始时间和 结束时间,数据库时间字段是 timestamp,Java 代码如何写
  • Mac电脑录屏软件 Screen Recorder by Omi 中文最新
  • Android 接入ttf字体文件
  • Java中各种数据格式-json/latex/obo/rdf/ turtle/owl/xml介绍对比示例加使用介绍