簡體   English   中英

從其他域加載內容后是否可以調整iFrame的大小?

[英]Possible to resize iFrame after loading contents from a different domain?

加載內容后,我希望調整頁面上iFrame的大小。 不幸的是,iFrame中加載的內容來自其他域。 我嘗試使用以下代碼在父窗口中調用函數,但它引發安全錯誤:

<body onload="parent.document.someFunction(document.body.scrollHeight);">

是否有可靠的方法可以使用其他域中的內容(我們可以訪問這些域並且可以使用FTP)來實現這一目標,或者我是否需要告訴客戶端他們必須在自己的域中鏡像內容?

請參閱這篇文章和我的答案: 從iframe調用父窗口函數

有可能,但並不容易。 您必須花點時間才能使其正常工作。

我相信,因為您可以訪問框架域和框架頁面域,所以可以使用document.domain-in-head-head技巧。

<script>
    document.domain = "mydomain.com";
</script>

更新:

我可以檢查以下內容嗎:

  1. 您是否將document.domain <script>放在兩頁的開頭?

  2. 兩者都具有完全相同的字符串,即都具有"subdomain.mydomain.com"還是都具有"mydomain.com" 通常,您使用它來確保框架頁面與父頁面具有相同的文檔域。

  3. 從框架頁面調用父函數后,您仍然收到安全錯誤嗎?

  4. 如果沒有,這就是我用來調整框架大小的功能。 它位於框架頁面的頂部。

     window.ResizeFrame = function (newHeight) { if (window.parent && window.parent.document) { var $frame = $(window.parent.document).find("#frame-id"); if ($frame.length) { if (typeof (newHeight) === "number") { $frame.css("height", newHeight); } } } }; 

讓我知道事情的后續!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM