2009-07-04 422 views
5

在一個網絡應用程序中,我們使用IFRAME讓用戶選擇父頁面的項目。Firefox iframe歷史

問題是每次打開IFRAME時,FIREFOX(3.5)都會將相同(父)頁的副本添加到歷史記錄中。

Web應用程序正在使用history.back()從父頁面轉到調用該頁面的頁面。

我們可以通過將「返回」頁面作爲參數從調用者傳遞給被調用者來解決該問題。

仍然返回按鈕保持中斷狀態(用戶按下後退按鈕,但保持在同一頁面中)。

創建的另一個問題是我們希望某些頁面不在歷史記錄中。我們不希望用戶將返回改爲INSERT頁面。

這是很容易與完成後的INSERT頁location.replace做,但不可能在Firefox上使用相同的INSERT頁面中的很多條目。

回答

1

如果問題是,你的項目是重複的,去

history.back(-2) 

或-3或-4如果需要的話,而不是history.back() or history.back(-1)

不過,如果我是你,我會嘗試溝I幀基礎的解決方案,並建立一些不涉及他們在所有的,因爲I幀和父文檔之間的溝通往往是一個錯誤magnet-

3

不知道您的問題是否與我今天的相同,但是...

當頁面上存在iframe並且iframe src發生更改時,瀏覽器(本例中爲FF 4.0)認爲它是導航並按下後退按鈕後,它會在此iframe內導航一步。

但是,當您在加載頁面後使用javascript動態創建此iframe時,其行爲會有所不同。 iframes src的連續更改不會被視爲導航,瀏覽器也不會將任何頁面放入歷史記錄,從而導致後退按鈕的預期行爲。

+1

我不知道這是否在2011年是正確的,但如果我正確閱讀這個,這是不正確的。在修改歷史事件的同時,必須更換或創建內聯框架。 (在同一個函數鏈中)後退/前進事件鏈傳播機制因此不會在Firefox中添加這個新創建的iframe,並且都是好的。 – Agamemnus 2015-04-13 06:39:19