【发布时间】:2011-06-09 04:02:50
【问题描述】:
确定页面正在显示的iframe DOM 元素的最佳方法是什么?
当 iframe 的内容真正完成加载时,我需要通知父窗口(iframe onload 看起来像是 WebKit 的骗局)。
考虑以下场景:
- 父窗口加载一个新的 iframe
- 加载的 iframe 从父窗口调用一个函数,并发送对其 iframe DOM 元素的引用(类似于“sender”参数)。
- 父级调用的函数会破坏 iframe。
也欢迎就这种帧间通信的替代解决方案提出建议。
我遇到的一个问题是 Safari / Chrome / WebKit 浏览器显然过早触发 iframe 的 onload 事件 - 我尝试将表单数据(带有文件上传)发送到 iframe 并让 onload 处理程序清除 @987654325 @ 元素的值并销毁 iframe,导致表单提交中止,所以在这种情况下我不能使用onload(顺便说一句,这是一个功能还是一个错误?)。
另一个用例是 iframe 做某事并希望与父级交互。
【问题讨论】:
-
你在说什么加载处理程序?您在 iframe 中加载的 iframe 或文档?
-
iframe 的
onload处理程序。 -
如果可以,请尝试在文档正文标签中设置 onload 功能并从那里调用父级,这应该可以工作。我记得以前在 iframe 上看到过 iffy webkit onlaod,还记得我围绕它构建的解决方案,但它是一年前的,我现在在我们的存储库中找不到源代码 - 如果你真的需要它,我可以找一下:)
-
谢谢马丁,我真的不需要它,但我很想知道你想出的解决方法,所以如果有一天你找到它,请告诉我 - 不需要不过快点。
标签: javascript dom iframe dom-events onload