如何使用hashchange进行beforeunload功能?

时间:2014-07-30 20:56:56

标签: javascript html5

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

 $(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";
 });

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

我认为您可能必须在哈希上捕获点击事件并在未确认时取消它:

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

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