如何禁止浏览器 的跳转行为?

场景

mobile web 页面,有一个满屏的弹窗,点击浏览器返回按钮,关闭弹窗,会返回上一个页面。

需求:

当点击返回或者前进的时候页面不做跳转。

想法

方法一:在 popstate 事件触发后,能否阻止浏览器的跳转行为?
方法二:如果可以监听到浏览器是触发 back 或者 forward, 在popstate事件中做一下相反的back 或者 forward 就好了. 
阅读 11.3k
1 个回答

方法1,阻止默认不可能,你顶多在页面beforeunload 的时候弹个框提醒一下。

方法2,有点可行。你可以通过初始化页面的document.referrer 等信息知道来源页,然后再进行跳转。你要监听是否是back 或者 forward来的,没那个可能吧。页面一刷新,你的js都被回收了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题