window.postMessage

iframe的使用和 contentWindow、parent以及postMessage通信方式 问题: 如何进行消息通信(父发给子,子接收父的消息,也可父直接调用子的方法; 子发给父,父接收子的消息;) 如何找到指定的子或者父window(如果iframe层级过多),又如何在发送消息时不影响其他的message监听 一、iframe的使用 <iframe style={{border:0,width:"100%",height:630,}} src={src} /> 如何进行消息通信(父发给子,子接收父的消息; 子发给父,父接收子的消息) 方法一: 直接通过获取父或者子的 阅读详情
<!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Html5 postMessage</title>
        <style>
            #otherWin {
                width: 600px;
                height: 400px;
                background-color: #cccccc;
            }
        </style>
    </head>
    <body>
        <button id="btn">open</button>
        <button id="send">send</button>
         <!-- 通过 iframe 嵌入子页面(接收消息目标窗口) --> 
         <iframe src="http://jhssdemo.duapp.com/demo/h5_postmessage/win.html" 
                     id="otherWin"></iframe> 
         <br/><br/> 
         <input type="text" id="message">
         <input type="button" 
                 value="Send to child.com" id="sendMessage" /> 
        <script>
            window.onload = function() {
                var btn = document.getElementById('btn');
                var btn_send = document.getElementById('send');
                var sendBtn = document.getElementById('sendMessage');
                var win =  document.getElementById("otherWin").contentWindow;
                btn.onclick = function() {
                    //通过window.open打开接收消息目标窗口
                    win = window.open('http://jhssdemo.duapp.com/demo/h5_postmessage/win.html', 'popUp');
                }

                btn_send.onclick = function() { 
                    // 通过 postMessage 向子窗口发送数据      
                    win.postMessage('Hello', 'http://jhssdemo.duapp.com/');
                }


                function sendIt(e){ 
                    // 通过 postMessage 向子窗口发送数据
                    document.getElementById("otherWin").contentWindow 
                    .postMessage( 
                        document.getElementById("message").value, 
                        "http://jhssdemo.duapp.com/"); 
                } 
                sendBtn.onclick = function(e) {
                    sendIt(e);
                };
            };
        </script>
    </body>
    </html>
<!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Html5 postMessage</title>
        <style>
            #txt {
                width: 500px;
                height: 300px;
                background-color: #cccccc;
            }
        </style>
    </head>
    <body>
        <h1>The New Window</h1>
        <div id="txt"></div>
        <script>        
            window.onload = function() {
                var text = document.getElementById('txt');  
                //监听函数,接收一个参数--Event事件对象
                function receiveMsg(e) {
                    console.log("Got a message!");
                    console.log("nMessage: " + e.data);
                    console.log("nOrigin: " + e.origin);
                    text.innerHTML = "Got a message!<br>" +
                        "Message: " + e.data +
                        "<br>Origin: " + e.origin;
                }
                if (window.addEventListener) {
                    //为window注册message事件并绑定监听函数
                    window.addEventListener('message', receiveMsg, false);
                }else {
                    window.attachEvent('message', receiveMsg);
                }
            };
        </script>
    </body>
    </html>
探针卡技术演进:从金线微针到MEMS探针的Wafer Sort革命 本文探讨了探针卡技术从传统金线微针到MEMS探针的演进,及其对晶圆测试(Wafer Sort)的革命性影响。随着芯片焊垫间距进入45微米以下,MEMS技术凭借其超高精度、超长寿命和卓越的信号完整性,成为应对高密度、高速及3D IC测试挑战的关键,显著提升了测试效率与稳定性。 阅读详情

相关推荐

VS Code配置MinGW64编译非线性优化库NLopt

VS Code用MinGW64编译C++代码安装MSYS2软件并配置非线性优化库NLopt和测试引用库代码的完整具体步骤。:若使用非UCRT版本(如传统MinGW64),替换所有路径中的。库文件会自动安装到MSYS2的。

weixin_30777913的博客 902

使用 postMessage 解决 iframe 跨域通信问题

是挂载在window对象上的,所以等iframe加载完毕后,用iFrame.contentWindow获取到iframe的window对象,然后调用postMessage方法,相当于给子页面发送了一条消息。postMessage方法第二个参数可以设置要发送到哪个url,如果当前子页面的url和设置的不一致,则会发送失败,我们设置为*,代表所有url都允许发送。总结:所谓的跨窗口发送消息,就是通过在别的窗口操作本窗口发送消息,然后本窗口再自己接收的方式实现。首先我们模拟场景,假设有两个不同源的页面,

喜洋杨 5351

TSmaster CANFD配置避坑指南:为什么你的PCAN盒不支持最新版本?

本文针对TSmaster配置PCAN硬件进行CANFD通信时的常见问题,提供了详细的避坑指南。重点解析了CANFD配置中TSEG1等关键参数的理解误区,并深入探讨了TSmaster新版本与PCAN硬件驱动之间的兼容性变化,帮助工程师快速定位并解决连接失败或无法发送CANFD报文等问题。

alpha的博客 541

(转)postMessage使用方法

postMessage使用方法

CaseyWei 1784

海康威视摄像机SDK二次开发--提取音频保存至文件

由于最近在开发海康威视摄像头,特此记录一下如何提取音频数据,这里主要依靠语音对讲返回的音频数据,通过回调函数写入文件中,加个WAV头即可播放,编码格式可以自己设置在代码中有注释 文件结构 其中CameraInfo内容可以参看海康威视摄像机SDK二次开发–实时预览视频流保存到指定文件中 HIKSDKSaveRealData中的内容 package ClientDemo; import ClientDemo.CameraInfo; import com.sun.jna.NativeLong; import

RichardoMu的博客 3172

2022(一等奖)B360基于Arcpy与SVM的滑坡易发性评价

此外,在ArcGIS平台下,“易发性图预测(多进程)”工具的运行时间为2h 48m 3s,“易发性图预测(单进程)”工具的运行时间为5h 19m 27s,运行时间缩短了近2h 31m 24s,运行效率提高了47.39%。在ArcGIS Pro平台下,“易发性图预测(多进程)”工具的运行时间为20m 12s,“易发性图预测(单进程)”工具的运行时间为1h 26m 47s,将运行时间缩短了近1h 6m 35s,运行效率提高了76.72%。滑坡的发生受各种影响因素的影响,目前,影响因素的选择没有一个统一的标准。

2301_77310370的博客 1466

react iframe 使用contentWindow.postMessage 传递参数

A项目(react)使用iframe 嵌套B(react) 项目时候需要传递一个对象; private gettaskDetailIframeSrc = () => { const { currentGroup } = this.props; let origin = location.origin; let path = '/app/oa'; let search = `?${agent.setCurrentOrg(curren

github_38696818的博客 4744

电流采样(分流器与霍尔传感器)

霍尔效应霍尔效应是磁电效应的一种,这一现象是霍尔(A.H.Hall,1855—1938)于1879年在研究金属的导电机构时发现的。霍尔效应是研究半导体材料性能的基本方法。通过霍尔效应实验测定的霍尔系数,能够判断半导体材料的导电类型、载流子浓度及载流子迁移率等重要参数。简单原理如图1所示,半导体薄片两端通以控制电流I,垂直方向施加磁感应强度为B的匀强磁场,d为半导体材料的厚度,k为霍尔常数,它与半导体材质有关,则在垂直于电流和磁场的方向上,将产生电势差为UH的霍尔电压,它们之间的关系为。霍尔元件。

weixin_48867130的博客 1万+

iframe及跨域通信postMessage()

一、window.postMessage() window.postMessage(info,origin)方法可以接受两个参数 1.info:要传递的数据,可以为json格式(因为我比较喜欢json格式的)部分浏览器只能处理字符串参数,所以我们在传递参数的时候需要使用JSON.stringify()方法对对象参数序列化 2.origin:字符串参数,指明目标窗口的源,协议+主机+端...

招来红月的博客 4180

【华为OD机试真题 2025双机位A卷】958、 高效的任务规划 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS)

【华为OD机试真题 2025双机位A卷】958、 高效的任务规划 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2025e卷,od机试,2025E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2025华为od,

KJ.JK 1071

【汇编实战开发笔记】一段汇编代码如何“反编译”成C代码?

介绍了一种由汇编代码得到C代码的方法

一个专注于嵌入式IoT领域的架构师,深耕IoT领域多年,深度掌握IoT领域的相关技术栈,包括但不限于RTOS内核的实现及其移植、硬件驱动移植开发、网络通讯协议开发、编译构建原理及其实现、底层汇编及编译原理、编译优化及代码重构、嵌入式IoT系统的架构设计等。 1万+

window.postMessage 详细讲解

由于浏览器同源策略的限制,通常情况下,两个不同的页面,需要同时满足协议、端口、主机三者相同,才可以相互通信,否则就会出现跨域的情况。方法可以安全地实现跨源通信。它提供了一种受控机制来规避此限制,只要正确的使用,这种方法就很安全。(下期预告,在Iframe里使用window.postMessage)

The world has changed because of technology! 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

window.postMessage+window窗口控制方法

p>这是一个模拟的弹出窗口,可以与父窗口通过postMessage通信。因为第二个参数配置的是在当前页面打开 => 忽略第三个参数的配置,此时会在当前窗口打开新页面。上述代码在点击按钮时直接在新窗口打开百度页面,若是想在当前窗口打开可以在第二个参数进行配置。方法,允许不同源的窗口之间进行数据传递,同时避免直接暴露于跨站脚本攻击(XSS)风险。的弹出窗口 => 谨慎使用,避免被浏览器误认为是恶意行为。[1] 浏览器窗口控制 => 打开新窗口或控制现有窗口。是一个引用,指向打开当前窗口的那个窗口(父窗口).

qq_43260366的博客 916

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【HTML】window.postMessage详解

【HTML】window.postMessage详解

学无止境 2542

window.postMessage(跨源通信)

window.postMessage(跨源通信)

weixin_44922480的博客 7136

window.postMessage的使用

window.postMessage的使用

韩旭不会敲代码吧的博客 4113

window​方法:post​Message()

postMessage()方法 window.postMessage()方法安全地启用Window对象之间的跨源通信;例如,在页面和它产生的弹出窗口之间,或者在页面和嵌入其中的iframe之间。 通常,当且仅当它们源自的页面共享相同的协议、端口号和主机(也称为“同源策略”)时,允许不同页面上的脚本相互访问。window.postMessage()提供一种受控制的机制来安全地规避这种限制(如果使用得...

wunianisme的博客 2213

window.postMessage的使用案例

window.postMessage的使用案例

个人学习笔记,勿喷!! 6263

window.postMessage 是什么

window.postMessage 是 HTML5 中提供的一种在不同源的窗口之间进行安全通信的方法。它允许一个窗口(例如,iframe 中的页面、通过 window.open 打开的新窗口等)向另一个窗口发送消息,同时可以指定接收消息的窗口的源,以确保消息只被允许的接收方获取。

weixin_64684095的博客 502

HTML5里的window.postMessage

估计很少人知道HTML5 APIS里有一个window.postMessage API。window.postMessage的功能是允许程序员跨域在两个窗口/frames间 和 主线程与web worker线程间发送数据信息。基本上,它就像是跨域的AJAX,但不是浏览器跟服务器之间交互,而是在两个客户端之间通信。让我们来看一下window.postMessage是如何工作的。除了IE6、IE7之外...

EmotionComputer 2534

​​谁会收到 window.postMessage的消息?​

window.postMessage 消息接收方总结 网页内通信: content.js(扩展内容脚本)和 inject.js(页面主脚本)可通过监听 window 事件互相通信。 同源 iframe 也能接收消息(需指定 targetOrigin)。 background.js 无法接收: 后台脚本运行在独立进程,无网页 window 对象,必须通过 chrome.runtime API 通信。 扩展通信路径: content.js ↔ background.js:直接使用 chrome.runtime.

勤奋的码农 427

全局对象Window的API(postMessage)方法深入浅出

例如,当用 postMessage 传送密码时,这个参数就显得尤为重要,必须保证它的值与这条包含密码的信息的预期接受者的 origin 属性完全一致,来防止密码被恶意的第三方截获。// document.getElementById('span2').innerHTML = event.origin // 发送消息的来源,可以根据origin来确保期望的发送者。// opener.postMessage('B页面发送过去的数据', 'http://127.0.0.1:5500')

weixin_50559423的博客 2699

窗口通信(window.postMessage)

是 HTML5 引入的跨窗口通信 API,专门用于在不同窗口(或 iframe)之间安全地传递数据,即使这些窗口属于不同域名(跨域场景)。它解决了同源策略对跨窗口通信的限制,是处理复杂窗口间交互的重要方案。允许一个窗口向另一个窗口发送数据,接收方通过监听message事件来获取数据。通信双方需要明确“发送方”和“接收方”的角色,且发送方需要知道接收方的窗口引用(如子窗口、父窗口、iframe 等)。

2301_81854535的博客 1590
上一篇: props 的一个用法
下一篇: jsonp 百度搜索框
han_hanker
博客等级 码龄13年 35粉丝 106原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值