一尘不染

浏览器后退功能会在页面本身之前作用于嵌套的iframe,有没有办法避免这种情况?

ajax

我有一个页面,其中包含一些ajax和许多javascript加载的动态数据。

该页面包含一个列表,用户可以从中进行选择,每个选定的值都将新数据加载到该页面。

这些数据项之一是提供给iframe的网址。

我使用jQuery BBQ:“后退按钮和查询库”来模拟浏览器后退行为。

除了当我第一次单击后退按钮时,iframe都返回到其先前位置,然后需要再次单击以使该页面返回,所有这些都运行良好。

有没有办法禁用iframe的后背行为?


阅读 837

收藏
2020-07-26

共1个答案

一尘不染

我已经找到了解决我的问题的答案,猜测它可能对其他人很有用。

问题出在我为Iframe分配新URL的方式上,我使用了Jquery,所以它看起来像这样:

$('#myIFrame').attr('src',newUrl);

以这种方式分配URL时,它将在浏览器的已访问URL列表中添加一个新条目以供返回。
这不是理想的行为,因此在进行谷歌搜索之后,我发现您可以将新URL分配给Iframe对象,而无需将其添加到“后备列表”中,如下所示:

var frame = $('#myIFrame')[0];  
frame.contentWindow.location.replace(newUrl);

这样我的后退按钮的行为就完全符合预期了。

顺便说一句,我从这里得到了答案。

希望这对您和我都有所帮助。

2020-07-26