事件,用于在浏览器中使用脚本进行后退导航

本文关键字:脚本 导航 用于 浏览器 事件 | 更新日期: 2023-09-27 18:05:47

我需要知道用户是否在浏览器中单击了返回导航箭头。我使用了下面的事件,但当我单击返回导航箭头时没有发生此事件。

$(window).on("navigate", function (event, data) {
});

事件,用于在浏览器中使用脚本进行后退导航

您可以使用历史记录的popstate

popstate事件只能通过浏览器操作触发,比如点击后退按钮(或者在JavaScript中调用history.back())。只有当用户在同一文档的两个历史条目之间导航时,才会触发该事件。

你必须添加一个新的条目到历史记录与相同的标题和不改变url

pushState(state, title, url)

,当你拦截onpopstate时,你会做你想要的操作,取消绑定事件,然后使用history.back() api。

window.onpopstate = function(event) {
  alert("location: " + document.location + ", state: " + JSON.stringify(event.state));
  window.onpopstate = null;
  history.back();
};
history.pushState({}, document.title, "");

这不是一个行之有效的方法,我只在Chrome中测试过。

简短的回答——你不能。

长答案- yooooooooooouuuuuuuuuu caaaaaaaaannnnnnnn 't

至少不是以我认为你想要的方式。你能做的最好的事情就是检测用户何时离开页面——尽管这并不一定意味着用户点击了后退按钮。此外,不能阻止他们离开页面

window.onbeforeunload = function(){
    return 'Leave this page?';
};

使用onbeforeunload事件,你可以运行一些任意的代码——但是浏览器会显示一个模态对话框,询问用户是想离开页面还是留在页面上。