关于postmessage:PostMessage父子页面通讯

问题:PostMessage父子页面如何通信? 解决办法:子页面 :window.postMessage(objData, window.location.href)//要传递的数据 接管信息的地址父页面:window.addEventListener('message', receiveMessage, false)// receiveMessage为逻辑解决办法

April 19, 2023 · 1 min · jiezi

关于postmessage:postMessage

此办法能够用于实现跨源通信等,咱们来演示如何实现在两个窗口之间进行通信。 假如咱们当初有两个页面:page1.html和page2.html, 他们的关系是通过iframe关联起来的,就像这样(上面是page1.html的内容): <iframe id="receiver" src="./page2.html" width="300" height="100"></iframe>为了实现通信,首先你须要在page2.html中注册事件监听: window.addEventListener('message', function (e) { console.log(e);});确保page2.html中事件监听注册好了当前,在page1.html中首先须要获取page2.html的窗口对象: var targetWindow = document.getElementById('receiver').contentWindow;而后,间接应用其中的postMessage即可发送: targetWindow.postMessage("你好呀!", "*");在理论应用中,两个页面不肯定须要通过iframe关联,比方应用window.location.href等也是能够的,不过有一个根本的准则要留神:发送信息的时候,肯定要确保接管方曾经实现了信息接管事件的注册。

January 13, 2023 · 1 min · jiezi

关于postmessage:窗口间通信方案postMessage

postMessage 是 html5 引入的 API,postMessage 办法容许来自不同源的脚本采纳异步形式进行通信,其实同源不同页面的脚本也能够采纳 postMessage 办法进行通信。 介绍发送数据须要在接收数据窗口的全局对象下调用该办法。 targetWindow.postMessage(message, targetOrigin, [transfer])targetWindow:指标窗口的全局对象援用,比方 iframe 的 contentWindow 属性、执行 window.open 返回的窗口对象、或者是命名过或数值索引的 window.frames。message:将要发送到指标窗口的数据,能够是任何类型的数据。它将会被结构化克隆算法序列化。这意味着能够不受什么限度的将数据对象平安的传送给指标窗口而无需本人序列化。targetOrigin:指定指标窗口的 origin ,只有指标窗口的 origin 与 targetOrigin 对应,指标窗口才能够接管到数据。 *:示意能够发送数据到任何 origin 的窗口,但通常处于安全性思考不倡议这么做。/:示意能够发送给以后窗口的同源窗口。transfer:可选,是一串和 message 同时传递的 Transferable 对象。这些对象的所有权将被转移给音讯的接管方,而发送一方将不再保有所有权。接收数据接收数据的窗口,监听 window 对象的 message 事件,从 event 对象里获取相干数据。 window.addEventListener('message', (event) => { const { data, origin, source } = event /* some code */})data:从其余 window 中传递过去的数据。origin:发送窗口的 origin,一个由“协定“、“://“、“域名"、“ : 端口号”拼接而成的字符串。source:对发送音讯的窗口对象的援用,能够应用此来在具备不同 origin 的两个窗口之间建设双向通信。平安发送数据的窗口,须要指定准确的指标窗口 origin ,而不是 * 。 接收数据的窗口,须要通过 event.origin 判断发送数据窗口的身份。 实例两个窗口之间的通信

May 25, 2022 · 1 min · jiezi

关于postmessage:windowname和postMessage跨域详解

文章不易,请关注公众号 毛毛虫的小小蜡笔,多多反对,谢谢。 概念window.name1、在一个窗口还没敞开之前,同一个窗口的所有页面都共享同一个window.name。 这个窗口可了解为chrome浏览器的一个tab标签页面。另外,从一个页面中跳转到另一个页面后,这些页面都共享同一个window.name。 2、每个页面都能读和写window.name。 这个可能就是平安问题的起源。 3、window.name在chrome上可存储小于等于2MB的数据。 postMessage能够平安地实现的跨源通信。 语法:otherWindow.postMessage(message, targetOrigin, [transfer]); 事件:window.addEventListener("message", receiveMessage, false);message的属性有:data, origin, source 平安问题比拟攻击者页面:A受害者页面:B 最初文章不易,请关注公众号 毛毛虫的小小蜡笔,多多反对,谢谢。有疑难和问题,请留言。如果感觉文章还能够,请点赞或珍藏,谢谢。

April 18, 2022 · 1 min · jiezi

关于postmessage:教你如何将表格中手机号筛选出来

excel表格和wps表格是咱们存储数据罕用的工具,题目中的问题能够借助软件,金芝号码提取整顿助手,来筛选,软件作者的徽是veve188。 咱们在平时的工作中,想整顿材料关上一个表格的时候,发现外面有混淆的文本,比方手机号码、座机电话、汉字、字母等凌乱的货色在一个表格里,然而咱们不想要这些货色,只想在表格外面提取手机号码,那么问题来了:如何将表格中手机号筛选进去?只有装置软件,金芝号码提取整顿助手,那么就能够疾速从表格中独自把11位的手机号码批量提取进去。 简略的三步就能够实现题目中的工作。 第一步:关上你的excel或wps表格,全副把这些芜杂的货色复制好。 第二步:关上软件,金芝号码提取整顿助手,把方才复制好的粘贴到软件上来,点“号码独自提取”。 第三步:坐等号码筛选完结,点“导出excel或txt”,即可。其余的芜杂货色都去除了,很洁净很参差的号码,单列排好。

September 17, 2021 · 1 min · jiezi