5

当主要Window想向子 iframe 发送消息时 -

它将孩子的 Iframe url 设置为其当前的url+ 哈希(表示数据)。

但是 iframe 将如何获取新数据?

我们有 4 个选项:( 我不是在谈论新的 api,例如postMessaage也不是 XDM 库)

  • 孩子正在轮询新的哈希(setTimeout)

  • 主窗口可以调整 iframe 的大小(iframe 必须注册onResize

  • 可以在 iframe 上使用 OnHashChange 事件

  • 销毁/创建代理 Iframe,它使用“onload”将 msg(javascript 函数!)发送到它的“SameDomainIframe”parent.frames['samedonain'].sendData(...)

我的问题来了:(关于选项#2(调整大小事件)):

根据这篇文章:

在 Firefox、Opera、Google Chrome 和 Safari 中,onresize 事件仅在浏览器窗口大小改变时触发。在 Internet Explorer 中,onresize 事件会在浏览器窗口或元素的大小发生更改时触发。

问题 :

这个调整大小的东西有没有跨浏览器的解决方案?

我不希望用户调整浏览器大小而 iframe 将重新读取数据的情况!

我希望仅在向 iframe 发送消息并手动调整大小时读取数据

4

1 回答 1

2

您可以使用 porthole,它是 iframe 的跨浏览器代理脚本,但您需要能够在另一个 iframe 的接收端托管一个小型代理文件。然后,您可以跨浏览器和域将信息和事件从一个 iframe 传递到另一个 iframe

http://ternarylabs.github.io/porthole/

于 2013-10-13T04:32:31.607 回答