Javascript 我可以使用window.postMessage进行同步跨域通信吗?
我正在考虑直接使用跨域通信 如果我这样做:Javascript 我可以使用window.postMessage进行同步跨域通信吗?,javascript,html,cross-domain,postmessage,Javascript,Html,Cross Domain,Postmessage,我正在考虑直接使用跨域通信 如果我这样做: 父帧中的postMessage() 加载iframe window.addEventListener(“消息”,回调,false)从子iframe 加载iframe之前发布的消息何时执行?他们保证会被处决吗?有时间保证吗 我想从顶部帧传递一个参数,该参数会影响子帧的初始化。postMessage()函数是异步的,这意味着它将立即返回。所以你不能和它进行同步通信 在您的示例中,已发布的消息将消失在空白中,因为在执行postMessage()函数时没有消息
postMessage()
window.addEventListener(“消息”,回调,false)代码>从子iframe
根据我的经验,从父级到iframe的消息总是会丢失,因此当父级收到来自iframe的消息时,通信就开始了。但在此设置中,哪一个先启动并不重要。要从父窗口向iframe发送第一条消息,您只能在加载iframe后执行此操作,在此之前,您甚至不能从子窗口向父窗口发送消息。 为此,请为iframe提供一个onload处理程序,以便您可以使用postmessge()。 请考虑下面的代码。
ifrm.setAttribute('src','www.yoururl.com'));
document.body.appendChild(ifrm);
ifrm.onload = function() {
this.contentWindow.postMessage(dataObject,'targetWindow');
}