是否存在完全阻止popstate的方法

is there anyway to fully prevent popstate?

本文关键字:popstate 方法 存在 是否      更新时间:2023-09-26

我现在正在使用jquery mobile。当用户点击框时,它会显示一个额外的框。但当用户强制返回浏览器(或后退按钮)时,此时第二个框应该隐藏起来,而不是返回上一页。

我已经设法用popstate实现了我想要的东西:

window.onpopstate = function(event) {
  if($('div').is(':visible') {
     closeFunction();
     event.stopImmediatePropagation();
  }
}

但它仍然会更改URL。

例如,如果我有这样的导航:

index > home > internal(with box)

然后我按下后退按钮

index > home

仍然会触发url更改,但不会触发页面更改。

我试过先用pagebeforechange,但结果是一样的。

有什么想法吗?

popstate事件是不可取消的。参考文件

规范:HTML5
接口:PopStateEvent
气泡:是
可取消:否
目标:defaultView
默认操作:无