2010-02-20 52 views
1

Firefox中有一個annoying bug,在動態創建的iframe中導航,然後通過Javascript刪除導致無法返回使用Firefox後退按鈕(您必須使用下拉菜單並導航到更多的頁)。iframe導航打破Firefox後退按鈕 - 解決方法?

我在驗證和提交數據的iframe中使用表單。在表單提交/數據驗證時,iframe中的頁面被刷新。如上所述,這打破了Firefox後退按鈕。

我需要一個解決方案,試圖解決這個問題,目前我已經嘗試了一些不同的東西沒有多少成功:

  • 在會話變量(PHP)存儲每一個IFRAME刷新頁面,然後使用history.go(-{session var})在我的jQuery代碼中導航回來。然而,這似乎只有在導航回到加載iframe之前的頁面時才起作用,而不是加載iframe的頁面(在稍後它仍然打破後退按鈕)
  • 隱藏iframe而不是刪除它 - 工作,但需要多次後退按鈕點擊,並提出'你想重新提交這些數據嗎?'消息
  • 當用戶關閉它時重新加載iframe。這樣做沒有優勢,因爲如果你回去,你必須仍然通過所有以前的iframe gubbins。

任何建議表示讚賞 - 但請注意:我想使用iframe,並不真正想使用ajax,並會喜歡跨瀏覽器兼容(ha!)的解決方案。

如果你有興趣,步驟重現此問題:

  • 在Firefox中嘗試它加載谷歌上的fancybox 網頁的iframe例如:http://fancybox.net/home
  • 搜索的東西,也就是加載了新的一頁在iframe
  • 關閉的fancybox框架
  • 嘗試和回去而不訴諸回下拉列表

順便說一句,IE處理這種情況比Chrome或Firefox更優雅!

+0

你可以發佈一個測試頁的URI嗎,不好意思,但我懶得自己實際構建它。 – guzart 2010-02-21 08:17:01

回答

1

我已經放棄了這一點,因爲已經嘗試了在陽光下的一切。採用jQuery的AJAX方法發佈數據,而不會添加歷史記錄。