js同级弹窗实现数据传输修改

window.postMessage 是一种用于实现跨窗口通信的 HTML5 特性。它允许在不同窗口或 iframe 之间安全地传递数据,即使这些窗口来自不同的域名。

window.postMessage 方法接受两个参数:

message:要发送的消息,可以是一个字符串或一个对象。
targetOrigin:指定接收消息的窗口的源(origin)。通常为目标窗口的域名,也可以是通配符,如 *,表示可以接收来自任何源的消息。
发送消息的窗口可以是任何 DOM 元素,如窗口、iframe 或弹窗。接收消息的窗口需要通过监听 message 事件来处理收到的消息。

以下是一个示例,演示如何使用 window.postMessage 在父级页面和子页面之间进行跨窗口通信:

在父级页面中:

// 监听message事件
window.addEventListener('message', function(event) {// 确保消息来自可信任的源if (event.origin !== 'https://child-page.com') {return;}// 处理接收到的消息console.log('父级页面收到消息:', event.data);
});// 向子页面发送消息
var childWindow = document.getElementById('child-iframe').contentWindow;
childWindow.postMessage('Hello from parent!', 'https://child-page.com');

在子页面中(iframe 页面):

// 监听message事件
window.addEventListener('message', function(event) {// 确保消息来自可信任的源if (event.origin !== 'https://parent-page.com') {return;}// 处理接收到的消息console.log('子页面收到消息:', event.data);// 向父级页面回复消息event.source.postMessage('Hello from child!', 'https://parent-page.com');
});

在这个示例中,父级页面和子页面都通过监听 message 事件来接收消息,并使用 event.data 来访问消息内容。父级页面向子页面发送消息,子页面接收后回复了一条消息。

注意:在实际应用中,要确保安全性,你应该验证消息的来源(event.origin)以防止不受信任的源发送恶意消息。


在子页面中,你可以在不使用 window.addEventListener 的情况下向父页面发送消息,而是使用直接的 JavaScript 语句。以下是一个示例:

在子页面中 (child_page.html):

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>子页面</title>
</head>
<body><!-- 子页面内容 --><script>// 向父页面发送消息window.parent.postMessage('Hello from child!', 'https://parent-page.com');</script>
</body>
</html>

在这个示例中,子页面中的 JavaScript 代码直接在加载页面时就向父页面发送消息,而不需要在 window.addEventListener 中编写代码。

这种方式适用于一些简单的场景,其中子页面加载后立即需要向父页面发送消息。如果需要更复杂的消息传递或需要在特定事件发生时发送消息,那么使用 window.addEventListener 来监听消息事件可能更合适。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/84787.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为何学linux及用处

目前企业使用的操作系统无非就是国产类的&#xff0c;windows和linux类。我们要提升自己的技能&#xff0c;需要学习这两款。我记得在大学时期&#xff0c;学习过windows以及linux&#xff0c;但当时觉得又不常用&#xff0c;就学的模棱两可。毕业之后&#xff0c;你会发现&…

分布式应用之监控平台zabbix的认识与搭建

一、监控系统的相关知识 1.1 监控系统运用的原因 当我们需要实时关注与其相关的各项指标是否正常&#xff0c;往往存在着很多的服务器、网络设备等硬件资源&#xff0c;如果我们想要能够更加方便的、集中的监控他们&#xff0c;zabix可以实现集中监控管理的应用程序 监控的…

在Anaconda中安装xgboost(简单高效)

文章目录 一、检查二、打开Anaconda Prompt三、安装四、验证 一、检查 前提条件&#xff1a;windows环境下&#xff0c;anaconda&#xff08;这里指的是Anaconda3&#xff09;已安装&#xff0c;相应的numpy和sicpy也已安装。如果未安装需要先安装这两个库。 二、打开Anaconda…

RapidSSL的便宜单域名https证书

RapidSSL是Geotrust https证书品牌中的一款入门级https证书品牌&#xff0c;目前属于Digicert的子品牌。它是一款提供高性价比和广泛适用范围的https证书&#xff0c;无论是个人还是企业用户都可以轻松申请并快速验证。今天就随SSL盾小编了解RapidSSL旗下的单域名https证书。 …

Redis分布式锁的实现方式、实现原理

目录 一、分布式锁的重要性与挑战1.1 分布式系统中的并发问题竞态条件数据不一致死锁 二、分布式锁的基本原理与实现方式2.1 分布式锁的基本概念2.2 基于数据库的分布式锁原理与实现方式优缺点 2.3 基于缓存的分布式锁原理与实现方式优缺点 三、Redis分布式锁的实现与使用3.1 使…

安科瑞电流隔离传感器 BA穿孔交流电流变送器-安科瑞黄安南

一.产品原理和功能介绍 BA系列产品应用电磁感应原理&#xff0c;对电网中的交流电流进行实时测量&#xff0c;采用精密恒流技术和线性温度补偿技术&#xff0c;将其隔离变换为标准的直流信号输出 采用24伏或12伏安全电压供电&#xff0c;具有过载能力强、高精度、高隔离、高安…

Talk | ICCV’23 清华赵天辰:Ada3D-基于动态推理的3D感知模型压缩及软硬件协同优化

​本期为TechBeat人工智能社区第533期线上Talk&#xff01; 北京时间9月21日(周四)20:00&#xff0c;清华大学博士生—赵天辰的Talk已准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “Ada3D-基于动态推理的3D感知模型压缩及软硬件协同优化”&#xff0c;他…

JavaScript学习记录 | DOM事件流 事件冒泡-事件捕获-事件委托

目录 DOM事件流常见面试题事件冒泡与事件捕获事件冒泡使用场景事件捕获使用场景事件冒泡和事件捕获区别 事件委托 - 利用事件冒泡机制事件委托应用场景支持事件委托的事件事件委托的优缺点 DOM事件流 DOM事件流的三个阶段&#xff1a;捕获阶段 -> 目标阶段 -> 冒泡阶段 …

attrib和attrs

attrib和attrs是Python库attrs中的两个重要函数。 attrib函数用于定义类的属性&#xff0c;它接受一个或多个参数来定义属性的名称、类型和默认值等。通过使用attrib函数&#xff0c;可以简化属性的定义过程&#xff0c;使代码更加简洁和易读。 attrs函数用于定义类&#xff…

浏览器报错内容:Provisional headers are shown

浏览器报错内容&#xff1a;Provisional headers are shown 如下图&#xff1a; 解决方法&#xff1a;nginx 443 启用HTTP/2模式&#xff0c;如下图&#xff1a; server {listen 443 ssl http2;server_name callcenterda.umworks.com;client_max_body_size 200M;ssl_session_…

死锁详细解读

目录 死锁&#xff08;1&#xff09; 一、死锁的定义 二、产生死锁的原因 三、产生死锁的四个必要条件 四、解决死锁的方法 死锁&#xff08;2&#xff09; 第三节 死锁避免 一、死锁避免的概念 二、安全状态与安全序列 三、银行家算法 第四节、死锁的检测与解除 …

Python 打印所有水仙花数

"""打印三位水仙花数介绍&#xff1a;水仙花数是指一个 n 位数&#xff0c;它的每个位上的数字的 n 次幂之和等于它本身。例如&#xff0c;153 是一个三位的水仙花数&#xff0c;因为 (1**3) (5**3) (3**3) 153。下面是一个 Python 程序&#xff0c;用于生成…

LabVIEW开发基于物联网的多功能功率分析仪

LabVIEW开发基于物联网的多功能功率分析仪 根据技术规则&#xff0c;电气元件网络中的单个被创建为在标称正弦波振动制造频率下运行。失真顺序的电流和电压波与正弦波不同&#xff0c;它们或多或少地扭曲成形状。它是由交流网络中非线性组件的存在引起的&#xff0c;例如静态转…

【C++】泛型算法(四)使用顺序性容器

一、顺序性容器 顺序性容器用来维护一组有序、类型相同的元素。 主要是&#xff1a;vector和list。 1.vector vector是用一块连续的内存存放数据&#xff1b;vector进行随机访问&#xff0c;效率比较高&#xff08;适合数列&#xff09;&#xff1b;vector对于插入和删除操作…

32:TX Text Control ActiveX/ASP.NET/WinForms/WPF Crack

TX Text Control ActiveX 32.0 添加操作“普通”样式表的能力。 2023 年 9 月 14 日 - 15:38新版本 特征 脚注- 在文档中插入与 Microsoft Word 兼容的脚注。脚注是一种文字处理功能&#xff0c;允许用户在页面底部插入附加信息。 可编辑的[普通]样式表- 添加了操作[普通]样式的…

为什么tomcat要自定义线程池实现?

背景 最近在研究tomcat调优的问题&#xff0c;开发人员做过的最多的tomcat调优想必就是线程池调优了&#xff0c;但是tomcat并没有使用jdk自己的线程池实现&#xff0c;而是自定了了线程池&#xff0c;自己实现了ThreadPoolExecutor类位于org.apache.tomcat.util.threads包下 …

入门python

[NOIP2006 普及组] 明明的随机数 题目描述 明明想在学校中请一些同学一起做一项问卷调查&#xff0c;为了实验的客观性&#xff0c;他先用计算机生成了 N N N 个 1 1 1 到 1000 1000 1000 之间的随机整数 ( N ≤ 100 ) (N\leq100) (N≤100)&#xff0c;对于其中重复的数字…

服务器为什么要一直开机?

很多人在选择服务器的时候会想要省钱&#xff0c;然后就想要自己搭建一个服务器&#xff0c;其实服务器呢是需要24小时一直开机的&#xff0c;一般服务器的工作时间是3-5年&#xff0c;它们第一次开机后就会一直到机器故障淘汰才会关机哦&#xff0c;这是为什么呢&#xff1f;今…

TikTok的全球影响:跨文化、跨国界的短视频文化

随着TikTok的崛起&#xff0c;短视频文化正在以前所未有的方式迅速传播&#xff0c;跨足了不同国家和文化的边界。本文将探讨TikTok的全球影响&#xff0c;以及它如何促进了跨文化交流和文化融合。 短视频&#xff1a;跨越语言和文化的沟通工具 TikTok的短视频格式具有独特的跨…

步步为营,如何将GOlang引用库的安全漏洞修干净

文章目录 引场景构建第一步、直接引用的第三方库升级修复策略1.确认是否为直接引用的第三方库2.找到需要升级的版本是否为release版本 第二步、间接引用的第三方库升级修复策略那么问题来了&#xff0c;我们这么间接引用库的对应的直接引用库是哪个呢&#xff1f; &#xff08;…