2015-06-15 51 views
1

有大量關於如何調整iFrame的大小以及如何調整iFrame的內容以適應不是跨域或跨域的URL的內容域,但是在開發者控制之下。如何調整我無法控制的跨域iFrame的大小

但我找不到如何調整iFrame的,對此我有零控制,從而無法postMessage回父。

這可能嗎?

即想象我的網站mysite.com正在嘗試iFrame CNN.com。我怎樣才能調整CNN iFrame的大小,以便顯示iFrame的全部內容,而無需滾動瀏覽CNN iFrame。

編輯

由於iframe是跨域,讀取iframe和內容的簡單的解決方案重新調整其大小根據內容的高度不能工作,由於安全限制。例如,Chrome瀏覽器給了我嘗試讀取不同域的iFrame的內容時,此異常:

Uncaught SecurityError: Failed to read the 'contentDocument' property from > 'HTMLIFrameElement': Blocked a frame with origin " http://dev " from accessing a frame with origin " http://cnn.com ". Protocols, domains, and ports must match.

由於這個原因,通常的解決辦法是讓與託管頁面的iFrame內容溝通,因爲看到here。但是,由於我的例子CNN.com中的URL完全是第三方,並且不在我的控制範圍之內,所以我無法遵循跨域解決方法。

+1

這可能嗎?如果是這樣,我在這裏發表評論以查看更新或答案。 –

+1

如果您使用cnn.com作爲源創建iFrame,則您可以完全控制它。我在你的問題中錯過了什麼? – Lance

+1

如果iframe在您的網站「mysite.com」上,那麼您可以根據需要調整iframe的大小。您無法觸摸控件如何呈現iframe的內容。我真的不明白問題在哪裏。 –

回答

0

根據我收到的意見,似乎可以肯定地說,從客戶端/瀏覽器端重新調整跨域iFrame的大小是不可能的。

也許一些複雜的服務器端算法可能會請求頁面並嘗試提供有關大小的提示,但在客戶端無法完成任何操作。