我有一个页面,其中包含一些 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/