2012-03-23 12 views
5

我有一個div,裏面有一個iframe,iframe從另一個站點(跨域)加載一個頁面。當頁面加載到Firefox時,它可以正常工作,並在div中顯示帶有iframe的頁面。但是,在Chrome中,它會在頁面加載時自動重定向到iframe URL。任何想法爲什麼發生這種情況,如果有可能做我想在Chrome中做的事情?Chrome爲什麼重定向到iframe onload的URL?

注意:我不想嘗試進行任何跨域通信,只想讓用戶從我網站的某個網頁中訪問其他網站。這也發生在Safari,所以也許它是一個webkit的東西。

+0

這是否發生在每個網址?也許這個特定的網站有「逃離iframe」代碼? – hamczu 2012-03-23 22:11:47

+0

不,它不。是的,我意識到在我發佈這篇文章後的一段時間,來自其他域的某些URL可以工作,所以它一定是這樣。我不確定這是如何完成的,所以我不知道要尋找什麼,但我可以弄明白。 – paul 2012-03-24 05:21:08

+0

解答您的問題:http://stackoverflow.com/questions/4002712/is-it-possible-to-prevent-iframe-content-from-escaping-into-main-page-using-js – hamczu 2012-03-24 09:00:03

回答

8

沙盒iframe可能會解決您的問題。它支持Safari和Chrome,並且不會影響Firefox 。您可以使用它像這樣:

<iframe sandbox="allow-forms allow-same-origin allow-scripts" src="http://stackoverflow.com"></iframe> 

通過不增加allow-top-navigation有你阻止了一個iframe的整個頁面重定向。 你可以在W3C.org瞭解更多關於它的信息。


從17版本開始,火狐還支持沙盒iframe中。

+0

解決我的問題精美,非常感謝! – Vimvq1987 2012-07-16 04:19:07

+0

謝謝你,你救了我的一天:) – 2013-02-04 10:41:56