使用窗口的unload事件,可以向用户显示确认对话框。例如,在等待完成某个请求的情况下导航离开页面将终止该请求。
是否有办法在HTML5历史记录API的onpopstate中实现这一点?或者有没有其他达到相同结果的方法?
是否有办法在HTML5历史记录API的onpopstate中实现这一点?或者有没有其他达到相同结果的方法?
我不知道这是否有助于您的情况,但是 Sammy.js 是一个流行的哈希路由库,具有 before 处理程序。我在我的应用程序中使用它来记录先前访问的哈希,如果它是我想要阻止他们离开的哈希,则返回 false 将使他们停留在该页面上。您仍然需要重写 URL 以显示先前的页面,但似乎正在工作。
有关更多信息,请参见此其他线程中的我的答案。
// Store original pushState
var _pushState = window.history.pushState;
// Some bad global variable to determine if confirmation is needed
var askForConfirm = true;
// Modify pushState behavior
window.history.pushState = function() {
if(!askForConfirm || confirm('Are you sure you want to quit this page ?')) {
// Call original pushState
_pushState.apply(window.history,arguments);
}
};