2016-04-28 32 views
1

我在页面上有一组兄弟IFrame,并且想通过它们之间的postMessage进行通信。 (他们都是在同一个起源,但父页不是)。window.parent.frames ['id'] vs window.parent.frames [0]

我想从帧中获取对其他兄弟帧的引用。通过这种方式似乎称为window.parent.frames,因为它在读取时不会触发交叉原点错误。

理想我想用这种方式:window.parent.frames['someFrameId']然而,对铬至少,我得到这样做阻止:

window.parent.frames['frame-id']

VM11236:1未捕获抛出:DOMException:封闭框架起源“http://myframedomain.com”从访问跨域框架。(...)

如果我通过指数得到它,而不是,通过一切window.parent.frames循环,它doenst触发日例外。

我试图找出原因,因为我已经看到其他集成使用它的方式,我想以前使用它。

回答

1

对于那些想知道的,我相信我找到了原因。你似乎需要正确地命名你的窗口才能以这种方式使用它。

window.name = 'my-frame'

window.parent.frames['my-frame']

工作

`window.name =未定义;

window.parent.frames['my-frame']

未捕获抛出:DOMException