JavaScript由于同源策略的限制,跨域通信一直是棘手的问题。当然解决方案也有很多: 1.document.domain+iframe的设置,应用于主域相同而子域不同; 2.利用iframe和location.hash,数据直接暴露在了url中,数据容量和类型都有限 3.Flash LocalConnection, 对象可在一个 SWF 文件中或多个 SWF 文件间进行通信, 只要 在同一客户端就行,跨应用程序, 可以跨域。 window.name 保存数据以及跨域 iframe 静态代理动态传输方案,充分的运...
在做 React Native 应用时,如果需要在 App 里面内嵌 H5 页面,那么 H5 与 App 之间可以通过 Webview 的 PostMessage 功能实现实时的通讯,但是在小程序里面,虽然也提供了一个 webview 组件,但是,在进行 postMessage 通讯时,官方文档里面给出了一条很变态的说明:
网页向小程序 postMessage 时,会在特定时机(小程序后退、组件销毁、分享)触发并收到消息。e.detail = { data },data 是多次 postMessage 的参数组成的数组
这...
JavaScript由于同源策略的限制,跨域通信一直是棘手的问题。当然解决方案也有很多: 1.document.domain+iframe的设置,应用于主域相同而子域不同; 2.利用iframe和location.hash,数据直接暴露在了url中,数据容量和类型都有限 3.Flash LocalConnection, 对象可在一个 SWF 文件中或多个 SWF 文件间进行通信, 只要 在同一客户端就行,跨应用程序, 可以跨域。 window.name 保存数据以及跨域 iframe 静态代理动态传输方案,充分的运...
推送事件后,我需要将消息从serviceWorker发送到页面.我无法指定端口属性(例如https://jakearchibald.github.io/isserviceworkerready/demos/postMessage/),因为我没有发送此消息
该代码不起作用(也许我做错了)self.registration.active.postMessage('fsdfasf');解决方法:在specs之后,似乎正确的实现是从Service Worker中选择一个Client,然后使用postMessage方法,例如:onmessage = function(event){clients.matchAll().then(functi...
尝试使用postMessage从iFrame检索对象时遇到问题.本质上,我不得不使用iFrame来攻击SAML身份验证端点. SAML端点将javascript对象返回到iFrame,然后将其作为parent.postMessage事件的一部分发送到父窗口:parent.postMessage(authResponse,"*");在Chrome和IE的较新版本中,父窗口事件监听器可以很好地捕获对象,并且我们可以正常运行了.但是,在IE 9中,iFrame不会发送对象,而是发送类似“ [Object object]”的字符串.
因此,尝试引用诸如...
我已经构建了一个PhoneGap应用程序,该应用程序使用了与该应用程序捆绑在一起的iframe,并且我正在尝试将电子消息从iframe传递给在运行该应用程序时似乎不起作用的父级实际的iPad;但是,当我在同一设备上的浏览器中运行该应用程序时,它运行良好.
这是我在iframe中用于发送消息的代码,请注意,我正在使用HammerJS捕获一些事件:var domain = 'http://' + document.domain;$('body').hammer().on("swipe", "", function(event) {var mes...
我有2个网站,我想在它们之间使用javascriptpostMessage.在我的主站点上,我在emty html文件中编写以下代码:<html><script>window.addEventListener("message",listener_,false);
function listener_(event) {console.log('ok!');<html><script>window.addEventListener("message",listener_,false);
function listener_(event) {console.log('ok!');//console.log(event);//console.log(event.data);}</script></html>并在我要从其...
是否有机会使用window.postmessage()在同一浏览器的不同选项卡中的两个不同应用程序之间进行通信?
我知道你可以在应用程序和iFrame之间做到这一点,但不同的标签呢?
更新:
案例场景:
>用户在一个选项卡中播放来自vk.com的音频>用户开始在另一个标签页面中播放来自youtube.com的视频> youtube.com将postmessage()发送到vk.com视频开始播放> vk.com让音频保持沉默
谢谢解决方法:如果您使用iFrame中加载的“中间页面”,则可以执行此...
有没有什么好的工具可以让开发人员正确调试在postMessage之间发送的消息?
或者也许是Firebug的插件?解决方法:Firebug (as of 1.11 beta 1)通过monitorEvents()支持此功能.你可以这样做:$("iframe").each(function(i, e) {console.log("Monitoring messages sent to: iframe(" + i + ")#" + $(this).attr("id"));monitorEvents(this.contentWindow, "message"); // Send a test message to this iframethis.contentWindow.postMe...
A message can contain any valid JSON object (null, boolean, number, string, array, or object)chrome扩展规范表明在后台和内容脚本之间传递的消息可以是Javascript对象,这意味着我们可以在不使用JSON.stringify的情况下传递Javascript对象.这是否意味着Chrome在发送邮件之前会在内部执行JSON.stringify?如果没有,如果我只是在没有JSONification的情况下传递Javascript对象,是否有性能提升?解决方法:这些消息在Chrome的JavaS...
我正在寻找一种方法将postMessage发送到兄弟iFrame,而父页面中没有任何javascript.我遇到的困难是尝试从第一个iFrame中获取另一个iFrame的窗口对象
该页面的布局如下:html body (http://host.com/)iFrame#a (http://me.com/a)iFrame#b (http://me.com/b)来自iFrame#a我正在尝试:(iFrame#b window).postMessage(...)问题是我不知道如何从iFrame#a中获取iFrame#b的窗口对象. parent.getElementById()和其他函数受XSS限制.我只想将p...
我正在构建一个Slack集成,旨在修改一些文本,然后将其发布到Slack通道,就像触发命令的用户说过它一样.
例如/ makeFace不赞成
@Ben下午3:45 ?_?
我要求客户端权限范围,它添加了chat:write:user权限.但是当我点击chat.postMessage端点时,它似乎只允许你作为添加集成的用户发布,因为它返回的令牌似乎是针对该用户的个性化.
我知道giphy,例如,发送它的gif消息,好像你是创始人,但我不知道他们是如何管理它的.是否有任何关于发送消息的文...
我正试着打电话parent.postMessage(obj, 'whatever');从iframe中我得到这个错误:未捕获DOMException:无法在’Window’上执行’postMessage’:无法克隆对象.解决方法:事实证明我传递的对象有方法,这就是错误消息说无法克隆对象的原因.
为了解决这个问题,您可以执行以下操作:obj = JSON.parse(JSON.stringify(obj));
parent.postMessage(obj, 'whatever');
我在heroku有一个游戏,现在我试图让它在Facebook画布上工作,但是,虽然它适用于Firefox,但在Chrome和IE中却没有.
IE显示带按钮的警告,单击按钮时会显示内容.
在chrome中,我收到此错误:Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('https://game.herokuapp.com') does not match the recipient window's origin ('null').怎么了?解决方法:确保加载了您正在/ FB正在发布的目标窗口消息.大多数时候...
我最近了解了window.parent.postMessage的HTML 5 API,并想知道使用它与简单的ajax调用有什么优缺点,
例如,在客户端为e.origin ===’www.example.com’创建一个消息事件的监听器,并在www.example.com上发送一个包含window.parent.postMessage(data,'*');解决方法:AJAX和Window.postMessage()的用例是不同的.
使用AJAX,您可以从浏览器向服务器发送消息.它被选择并由服务器上运行的脚本处理(为PHP,Node.js,Ruby,Python,Java等编写),它...