Firefox后退按钮与iframes

时间:2011-03-10 11:40:34

标签: firefox iframe back-button

在Firefox中,如果更改了iframe的window.location,则会将其填充到顶级窗口的历史记录中。

如果用户现在点击浏览器后退按钮,则iframe的内容将更改,而不是浏览器返回上一个HTML页面。

对于某些架构来说,这是完全错误的。

有没有办法用JavaScript阻止Firefox(3.x)这样做?

(请坚持这个问题,而不是为什么/何时/如何使用iframe与其他技术相比。)

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

我有同样的问题,并在阅读本文时研究可能的方法。我不知道你是否解决了这个问题,但我想我会在IFrame'd窗口中使用unload事件来通知父窗口何时被卸载。

如果iframe被“有效”方法关闭,则会在父级设置一个变量来表示iframe应该卸载

如果父级重新加载/更改iframe的src,则将变量设置为表示预期卸载

如果在iframe中发生了意外卸载,我认为它是后退按钮并相应地更新父页面(例如,在父级历史记录中跳回另一步,或者执行其他操作)。

这里唯一丑陋的情况是,如果父页面被卸载并且iframe也会抛出卸载 - 取决于父页面更改的速度,您可能会遇到一个竞争条件,其中父级的iframe卸载处理程序是否被触发。 / p>

答案 2 :(得分:-2)

  

有没有办法用JavaScript阻止Firefox这样做?

键入地址栏about:config并查找选项“browser.cache.memory.enable”并将值更改为false。然后使用选项“browser.cache.disk.enable”禁用文件系统上的缓存。在此之后,这种行为应该消失,到目前为止理论。

P.S。:我从未亲自尝试过。