关于如何调整iFrames的大小以适应非跨域或跨域但在开发人员控制下的URL的内部内容,有大量的文章和问题。
但是,我找不到如何调整一个iFrame的大小,而我对它的控制是零的,因此不能将postMessage
返回到父级。
这个是可能的吗?
例如,想象一下我的站点mysite.com正在尝试iFrame CNN.com。如何调整CNN iFrame的大小,使iFrame的全部内容显示,而不需要滚动CNN iFrame。
编辑
由于iFrame是跨域的,由于安全性限制,读取iFrame内容并根据内容高度调整其大小的简单解决方案无法工作。例如,当试图在另一个域上读取iFrame的内容时,Chrome给了我这个异常:
Uncaught :未能从>‘HTMLIFrameElement’中读取'contentDocument‘属性:阻止具有原始"http://dev“的帧访问具有原点"http://cnn.com”的帧。协议、域和端口必须匹配。
因此,一个常见的解决方案是让iFramed内容与宿主页面进行通信,如这里所见。然而,由于在我的例子中的网址,CNN.com,完全是第三方,我无法控制,我不能遵循跨域的解决办法。
发布于 2015-09-03 03:58:02
根据我收到的评论,可以肯定地说,不可能从客户机/浏览器端重新调整跨域iFrame的大小。
也许一些复杂的服务器端算法可以请求页面并试图提供有关大小的提示,但在客户端却什么也做不了。
https://stackoverflow.com/questions/30856767
复制相似问题