1

Firefox 中有一个烦人的错误,即在动态创建的 iframe 中导航,然后通过 Javascript 将其删除,导致无法使用 Firefox 后退按钮返回(您必须使用下拉菜单并导航另外几页)。

我在 iframe 中使用一个表单来验证和提交数据。在表单提交/数据验证时,iframe 中的页面会被刷新。如上所述,这会破坏 Firefox 后退按钮。

我需要一个解决方案来尝试解决这个问题,我目前尝试了一些不同的事情但没有取得多大成功:

  • 将每个 iframe 页面刷新存储在会话变量 (PHP) 中,然后history.go(-{session var})在我的 jQuery 代码中使用以导航回来。但是,这似乎仅在导航回加载 iframe 之前的页面时才有效,而不是加载 iframe 的页面(在稍后,它仍然会破坏后退按钮)
  • 隐藏 iframe 而不是删除它 - 半有效,但需要多次单击后退按钮并显示“您要重新提交此数据吗?” 信息
  • 当用户关闭 iframe 时重新加载它。这样做没有任何好处,因为如果你回去你仍然必须通过所有以前的 iframe gubbins。

任何建议表示赞赏 - 但请注意:我想使用 iframe,并不真的想使用 ajax,并且会喜欢跨浏览器兼容的解决方案(哈!)。

如果您有兴趣,重现此问题的步骤:

  • 在 Firefox 中尝试在 fancybox 主页上加载 Google 的 iframe 示例:http: //fancybox.net/home
  • 搜索一些东西,即在 iframe 中加载一个新页面
  • 关闭花式框框架
  • 尝试返回而不使用返回下拉列表

顺便说一句,IE 比 Chrome 或 Firefox 更优雅地处理这种情况!

4

1 回答 1

1

我已经放弃了这一点,因为在阳光下尝试了一切。诉诸通过 jQuery 的 AJAX 方法发布数据,该方法不会添加历史记录项。

于 2010-02-21T18:19:38.360 回答