我有一个网页,可以逐步更新,因此我需要Windows"返回"按钮调用函数刷新数据而不返回页面。 我有第一部分工作我陷阱"回"按钮
window.onbeforeunload = confirmExit();
和confirmExit()
function confirmExit() {
switch (page) {
case 2:
countries();
break;
case 3:
counties(page3id)
break;
case 4:
cities(page4id)
break;
}
}
哪一项都运行良好但在页面刷新后,后退按钮默认操作启动并加载上一页。我试过回真假。我将不胜感激,谢谢。
答案 0 :(得分:0)
您需要将虚拟网站添加到浏览器历史记录中。这样后退按钮就不会通往另一个网站。
使用history.pushState()
添加虚拟网站。
来自MDN: Manipulating the browser history 的假设http://mozilla.org/foo.html执行以下JavaScript:
var stateObj = { foo: "bar" }; history.pushState(stateObj, "page 2", "bar.html");
这将导致显示URL栏 http://mozilla.org/bar.html,但不会导致浏览器加载 bar.html甚至检查bar.html是否存在。
现在假设用户现在导航到http://google.com,然后 点击回来。此时,将显示URL栏 http://mozilla.org/bar.html,该页面将获得一个popstate事件 其状态对象包含stateObj的副本。页面本身会 看起来像foo.html,虽然页面可能会修改其内容 popstate事件。
如果我们再次点击返回,则网址将更改为 http://mozilla.org/foo.html,该文件将获得另一份文件 popstate事件,这次使用null状态对象。去吧 back不会改变文档的内容 上一步,虽然文档可能会更新其内容 收到popstate事件后手动。
用户现在可以按后退按钮添加虚拟网站的次数。要检测后退按钮,请使用 popstate事件 每次活动时都会将popstate事件调度到窗口
历史条目变更。如果正在激活的历史记录条目是
通过调用pushState或受对replaceState的调用而产生的,
popstate事件的state属性包含历史记录的副本
条目的状态对象。window.onpopstate
来自MDN: Manipulating the browser history