有大量關於如何調整iFrame的大小以及如何調整iFrame的內容以適應不是跨域或跨域的URL的內容域,但是在開發者控制之下。如何調整我無法控制的跨域iFrame的大小
- Dynamically resize iframe
- Resizing an iframe based on content
- Resize iframe height according to content height
但我找不到如何調整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完全是第三方,並且不在我的控制範圍之內,所以我無法遵循跨域解決方法。
這可能嗎?如果是這樣,我在這裏發表評論以查看更新或答案。 –
如果您使用cnn.com作爲源創建iFrame,則您可以完全控制它。我在你的問題中錯過了什麼? – Lance
如果iframe在您的網站「mysite.com」上,那麼您可以根據需要調整iframe的大小。您無法觸摸控件如何呈現iframe的內容。我真的不明白問題在哪裏。 –