2016-09-20 42 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中的內容。