2016-09-20 43 views
3

我有一个父页面呈现和不同大小的正文iframe。未捕获SecurityError端口问题:Iframe调整大小

599未捕获的SecurityError:然而,当你www收到以下错误的网站导航与出访问与出身“http://www.example.com”框架封闭起源“http://example.com”的框架。协议,域和端口必须匹配。

表单在iframe中呈现,但它没有正确调整滚动高度(我无法在iframe上有任何滚动功能,并且需要朝向框架底部的额外空间)。

这是因为在页面上下面的iframe /功能:

<iframe id="iframe1" src="http://www.example.com/virtual-directory" height="" width="300px" frameborder="0" onload="iframeLoaded()"></iframe> 
<script> 
    function iframeLoaded() { 
    var iFrameID = document.getElementById('iframe1'); 
    if (iFrameID) { 
     iFrameID.height = ""; 
     iFrameID.height = iFrameID.contentWindow.document.body.scrollHeight + 20 + "px"; 
    } 
    } 
</script> 

我看了看这个帖子SecurityError: Blocked a frame with origin from accessing a cross-origin frame但我不完全知道从哪里实现一个检查,以得到这个调整大小正常工作而不会引入安全风险。

回答

1

如果您对两家母公司和iframe完全控制,你可能想尝试ConroyP的答案在这里:Resizing an iframe based on content

(这是公认的答案)

这是一个有点复杂,但它很适合我。取决于网络速度,它可以几乎是瞬间的。

唯一的缺点是,当你在它更改网页不滚动的iframe中的内容。