在外部域

时间:2015-06-24 20:38:08

标签: javascript iframe cors postmessage

我在外部域上有多个iFrame(同一个域)。如果我执行window.top.frames [" name-here"]。postMessage()并且框架存在,那么很明显postMessage正确执行。

但是,在这种情况下,iFrame是基于模块化的,所以它们都不需要存在。所以,如果我初始化" window.top.frames [" name-here"]。postMessage(" HI"," *")&#34 ;并且该框架不存在,它会导致阻塞带有原点的框架" xyz"来自访问跨域框架。 我认为这不是一件大事,因为它不会抛出任何页面错误。

我尝试使用postMessage循环遍历window.top.frames,但这也会引发CORS错误。

1 个答案:

答案 0 :(得分:0)

错误可能不是postMessage,而是访问框架本身。拨打window.top.frames["name-here"]很可能会给您相同的消息。正如你所说,我不认为错误是一个大问题,但如果你想摆脱它,你可以获得frames长度并相应地发送你的消息。像这样:

var existing_frames = window.top.frames.length;