此处的代码适用于页面刷新或关闭页面。它会弹出一个对话框,询问您是否确定要离开而不保存。

 $(window).on('beforeunload', function(){
      return 'Did you save your changes?';
 });

问题是我有一个 SPA,我希望它也显示在 hashchange 上。
警报在这里工作,但返回一个字符串什么都不做。我猜那个对话框是
特定于 beforeunload 事件。
 $(window).on('hashchange', function(){
     alert("saved?");
     return "this doesn't do anything";
 });

我应该如何解决这个问题?

最佳答案

我认为您可能需要捕获哈希上的点击事件,如果未确认则取消它:

$('a[href^="#"]').click(function(){
    return confirm('Did you save your changes?')
});

演示:http://jsfiddle.net/v8GbN/

关于javascript - 如何使用 hashchange 实现 beforeunload 功能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25046778/

10-10 01:17