当我的页面位于 iframe 中时,我注意到 Internet Explorer 的一种奇怪行为。似乎 iframe 在调用 window.history.back() 时会自行重新加载,即使只有 URL 中的哈希值应该改变。当页面不在 iframe 中时,它会正常运行并且不会重新加载页面。知道为什么会发生这种情况以及如何预防吗?
我创建了一个小提琴,将在 IE9 中演示这一点:
jsfiddle 使用 iframe,因此行为将是 iframe 行为。单击“#foo”和“#bar”将更改 URL 中的哈希值。现在单击“返回”链接将触发 window.history.back()。请注意,当您这样做时时间戳会发生变化,表明页面正在重新加载。
或者,如果您直接加载 iframe:
http://fiddle.jshell.net/peh96/5/show/
您会注意到单击“返回”时时间戳不会改变。
这只是一个 IE 问题,因为无论是否在 iframe 内,Chrome 和 Firefox 都是一致的。
知道如何防止这种重新加载吗?