2014-02-17 63 views
0

我想在我的html網站中嵌入一些第三方內容,這將是一個html頁面。我想到了使用iframe的方法,我將iframe內嵌在我的網站中的第三方html頁面。在HTML網站中嵌入第三方內容

使用iframe的動機是我不知道他們可能使用哪些庫,或者他們可能寫什麼CSS。我希望他們的邏輯與我分開。 Iframe滿足了我的這個願望。

但是現在我遇到了一個問題,如果我希望瀏覽器的返回/下一個功能適用於iframe中的任何導航,那麼由於路由的原因將很難維護。同時,在父頁面刷新時保持iframe狀態將非常困難。

那麼,首先iframe方法是否正確?如果是這樣,那麼我該如何迎合瀏覽器後退/下一步?

+0

是不是與在iframe中有後退按鈕有關的上述主題?我希望我的功能能夠從瀏覽器的後面/下一頁開始工作,並且該主題不會幫助我更新頁面。 – gauravmuk

+0

_「同時,在父頁面刷新時保持iframe狀態將非常困難」 - - 正確。雖然它可以完成,但是它需要兩個頁面一起工作:使用'window.postMessage',兩個頁面甚至可以跨域障礙進行通信;所以iframe將不得不告訴父頁面當改變發生時它當前顯示的實際地址 - 這樣,父頁面可以在重新加載時從開始加載「right」地址來創建iframe元素。 [...] – CBroe

+0

[續]然而,iframe中的任何導航歷史記錄都會在重新加載父級時丟失 - 因爲它每次都會是一個「新」iframe。 – CBroe

回答

0

好了,你可以用JavaScript管理後退/前進按鈕,像這樣:

iframe.contentWindow.history.back(); 
iframe.contentWindow.history.forward(); 

更大的問題是,包括頁面可以禁止可能被納入IFRAME(如果包括頁面,這種行爲變成IFRAME,它會加載你的頁面 - 例如檢查this qeustion)。