javascript - 浏览器返回在页面本身之前作用于嵌套的 iframe - 有没有办法避免它?

标签 javascript html ajax iframe back-button

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

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

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

我使用 jQuery BBQ: Back Button & Query Library模拟浏览器返回行为。

除以下事实外一切正常:当我第一次单击后退按钮时,iframe 返回到其先前的位置,然后我需要再次单击后退以使页面返回。

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

最佳答案

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

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

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

当以这种方式分配 URL 时,它会在浏览器的已访问 URL 列表中添加一个新条目以返回。
这不是我们想要的行为,所以在谷歌搜索后我发现您可以为 Iframe 对象分配一个新的 URL 而无需将其添加到“后备列表”,它看起来像这样:

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

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

顺便说一句,我从 here 得到了答案.

希望这对你有帮助,就像对我一样。

关于javascript - 浏览器返回在页面本身之前作用于嵌套的 iframe - 有没有办法避免它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2245883/

相关文章:

javascript - Meteor:从 MongoCollection.find() 遍历光标并打印字段

javascript - 如何通过从 canvasjs 中的 AJAX 调用获取输入来绘制具有对数刻度的图形

javascript - 如何强制 Coldfusion cfc 将 JSON 上的数字数据作为字符串输出?

ajax - 使用 Ajax 将 JSON 发送到 WCF 3.5

javascript - 如何在延迟 2 秒后触发 $watch 或执行范围订阅属性的最后一个条件?

javascript - Youtube JavaScript API - 播放任何一个 youtube 视频时暂停音频

javascript - 为相同的效果缩小相同 div 的代码

javascript - 当选择值时显示图像

单元格的 HTML/CSS 包装数据

javascript - Angularjs 显示 ajax 响应