2009-07-04 196 views
5

在一个网络应用程序中,我们使用IFRAME让用户选择父页面的项目。Firefox iframe历史

问题是每次打开IFRAME时,FIREFOX(3.5)都会将相同(父)页的副本添加到历史记录中。

Web应用程序正在使用history.back()从父页面转到调用该页面的页面。

我们可以通过将“返回”页面作为参数从调用者传递给被调用者来解决该问题。

仍然返回按钮保持中断状态(用户按下后退按钮,但保持在同一页面中)。

创建的另一个问题是我们希望某些页面不在历史记录中。我们不希望用户将返回改为INSERT页面。

这是很容易与完成后的INSERT页location.replace做,但不可能在Firefox上使用相同的INSERT页面中的很多条目。

回答

1

如果问题是,你的项目是重复的,去

history.back(-2) 

或-3或-4如果需要的话,而不是history.back() or history.back(-1)

不过,如果我是你,我会尝试沟I帧基础的解决方案,并建立一些不涉及他们在所有的,因为I帧和父文档之间的沟通往往是一个错误magnet-

3

不知道您的问题是否与我今天的相同,但是...

当页面上存在iframe并且iframe src发生更改时,浏览器(本例中为FF 4.0)认为它是导航并按下后退按钮后,它会在此iframe内导航一步。

但是,当您在加载页面后使用javascript动态创建此iframe时,其行为会有所不同。 iframes src的连续更改不会被视为导航,浏览器也不会将任何页面放入历史记录,从而导致后退按钮的预期行为。

+1

我不知道这是否在2011年是正确的,但如果我正确阅读这个,这是不正确的。在修改历史事件的同时,必须更换或创建内联框架。 (在同一个函数链中)后退/前进事件链传播机制因此不会在Firefox中添加这个新创建的iframe,并且都是好的。 – Agamemnus 2015-04-13 06:39:19