如何处理IE和FF / Safari之间的后退按钮

时间:2010-06-04 19:04:08

标签: cross-browser

我正在开发一个网站,我希望能够在页面上更改内容,并且还会更改URL。 (即mysite.com/test#firstcontent变为mysite.com/test#othercontent)。我已经在所有浏览器中完美地工作以更改URL哈希,但IE中的后退按钮会在所有哈希更改之前将我重定向到URL。很抱歉这么重复,但这是我的用户会做的事情:

  1. 从mysite.com/test
  2. 开始
  3. 在同一页面上导航至mysite.com/test#new
  4. 然后到mysite.com/test#new2
  5. 如果用户在任何浏览器(IE除外)中点击后退按钮,它将从步骤3转到#2到#1。但是IE会强制它们一直回到#1之前的URL。如果您愿意,我如何让IE将哈希差异识别为“页面更改”,以便导航将在步骤之间进行,而不是URL。

    我为过于罗嗦而道歉,但我无法在任何地方找到答案,需要明确。提前谢谢!

1 个答案:

答案 0 :(得分:0)

在IE中你必须有一个IFRAME以某种方式帮助管理历史。

This似乎是关于这个主题的全面文章。摘录:

  

IE中的问题来自于这个事实   它不会创建历史记录条目   当哈希值发生变化时。这可以   通过导航iframe来解决问题   除了将哈希值更改为IE   确实创造了一个新的历史点   导航框架的时间。

另请参阅有关jquery历史管理插件的this post

BTW - 一般情况下,您可能需要考虑使用一些JavaScript框架来帮助您避免像这样的跨浏览器怪癖。