[英]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>
更新:
我可以檢查以下內容嗎:
您是否將document.domain <script>
放在兩頁的開頭?
兩者都具有完全相同的字符串,即都具有"subdomain.mydomain.com"
還是都具有"mydomain.com"
? 通常,您使用它來確保框架頁面與父頁面具有相同的文檔域。
從框架頁面調用父函數后,您仍然收到安全錯誤嗎?
如果沒有,這就是我用來調整框架大小的功能。 它位於框架頁面的頂部。
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.