iframe具有自动高度

时间:2010-04-14 03:26:42

标签: javascript jquery html jquery-plugins

我需要使用跨域src自动修改iframe,我尝试使用javascript,但是当我尝试获取iframe contentWindow的高度时,我得到了“拒绝访问”。有谁知道任何方法?

3 个答案:

答案 0 :(得分:3)

ItzWarty是对的:父页面无法与子文档通信,甚至无法查找其高度。早在2008年,Michael Mahemoff发布了Cross-Domain Communication with IFrames的详细概述,可能会为您提供一些指导。

希望即将到来 - 但是HTML5包含了对这种情况的改进,称为“Cross-document messaging”,Firefox 3,Safari 4,Chrome 2,Opera 9.2甚至IE ...都支持这种情况。您的用户只使用那些支持的浏览器,您可以使用它。

也许你可以默认将IFRAME元素的“scrolling”属性设置为“auto”并测试window.postMessage - 如果成功,将“scrolling”设置为“no”并使用函数相应地调整IFRAME的大小

我最近处理了一个类似的问题(来自domain.tld的父页面在blog.domain.tld上构建了一个页面),但是我能够使用Mahemoff描述的“旧document.domain hack”,尽管Opera不支持它。

祝你好运。

答案 1 :(得分:1)

如果您在服务器上创建了一个获取内容的代理,则JavaScript不会有此限制。

答案 2 :(得分:1)

域名问题只是您面临的一个问题 - IE8是另一个问题。即使您可以访问iframe,IE8也无法准确检索body.clientHeight信息。 Firefox工作......