停止 chrome 后退/前进两指滑动

新手上路,请多包涵

我想禁用导致 Chrome 后退或前进的双指滑动。我有一个网站,如果用户不专门保存,他可能会失去工作进度。

我试过使用 window.onbeforeunload 但如果我在 url 中有哈希值,那似乎不起作用(后退会在 www.example.com/work/#step1#unsaved www.example.com/ 之间改变) work/#step0) 并且事件似乎没有触发。

我正要切换到另一个解决方案,但今天我注意到在 Google 文档中它已完全禁用。他们是如何做到的?

原文由 andrei 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

你在错误的层面上看待问题。 OnBeforeUnload 根本不会被触发,因为从浏览器的角度来看没有任何东西被卸载。因此,坦率地说,您实施了错误的版本控制机制 - 片段用于页面状态,而不是您现在使用的文档状态。

如果您坚持通过散列片段维护状态,则需要使用另一种机制来防止页面状态更改。由于所有当前的浏览器都支持 LocalStorage,所以我会使用它。好吧,同时将所有文档状态数据放在那里而不是 URL 中,因为这就是 Google Docs 的工作方式,这就是为什么他们没有这个问题。

原文由 Niels Keurentjes 发布,翻译遵循 CC BY-SA 3.0 许可协议

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