2010-02-20 48 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方法发布数据,而不会添加历史记录。