2012-02-28 72 views
0

我正在尋找調整其頁面上的iFrame的內容加載後。不幸的是,在iFrame中加載的內容來自不同的域。我試着用下面的代碼來調用函數在父窗口,但它拋出安全錯誤:從不同的域加載內容後可能調整iFrame大小?

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

是否有退出這個功能從其他域使用內容的可靠方式(我們有機會獲得這些域名,並可以FTP)還是我需要告訴客戶他們必須在自己的域名鏡像內容?

回答

0

請參閱這篇文章,我的答案:Calling a parent window function from an iframe

這是可能的,但不容易。你必須破解一些才能使其工作。

我相信,因爲您有權訪問框架域和框架頁面域,您將能夠使用document.domain-the-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); 
          } 
         } 
        } 
    }; 
    

讓我知道如何去!

+0

不幸的是,這並沒有解決問題。 – 2012-02-29 18:38:27

+0

我發佈了一些更多信息,瞭解我的方案如何工作。 – 2012-03-01 10:31:40

+0

嘿那裏 - 所以這在我自己的域的不同頁面上工作,但不在客戶端上。不知道爲什麼,但我標記你的答案是正確的,因爲它在一個實例中起作用。謝謝!! – 2012-04-02 17:04:08

相關問題