事件,用于在浏览器中使用脚本进行后退导航
本文关键字:脚本 导航 用于 浏览器 事件 | 更新日期: 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事件,你可以运行一些任意的代码——但是浏览器会显示一个模态对话框,询问用户是想离开页面还是留在页面上。