我需要使用跨域src自动调整iframe的高度,我尝试使用javascript,但是当我尝试获取iframe contentWindow的高度时,我收到“访问被拒绝”的消息。有人知道什么方法吗?
最佳答案
ItzWarty 是对的:父页面无法与子文档通信,甚至无法找出其高度。早在 2008 年,Michael Mahemoff 就发布了 Cross-Domain Communication with IFrames 的详细概述这可能会为您提供一些指导。
希望就在眼前,然而 - HTML5 对这种情况进行了一项名为“Cross-document messaging”的改进,Firefox 3、Safari 4、Chrome 2、Opera 9.2 甚至 IE 均支持该改进... 8. 如果您的用户仅使用那些受支持的浏览器,您可以使用它。
也许您可以将 IFRAME 元素上的“scrolling”属性默认设置为“auto”并测试 window.postMessage - 如果成功,将“scrolling”设置为“no”并使用函数相应地调整 IFRAME 的大小.
我最近处理了一个类似的问题(domain.tld 的父页面在 blog.domain.tld 上构建页面),但我能够使用 Mahemoff 描述的“旧 document.domain hack ”来解决,尽管它不是Opera 支持。
祝你好运。
关于javascript - 具有自动高度的 iframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2634693/