代码之家  ›  专栏  ›  技术社区  ›  MartyIX

在适当的时候,如何在卸载前显示对话框?

  •  6
  • MartyIX  · 技术社区  · 15 年前

    我的网页上有一个javascript编辑器,我想问用户,即使有未保存的更改,他/她是否想离开页面。

    我知道我可以通过以下方式向“onbeforeunload对话框”添加自定义消息:

    window.onbeforeunload = function() {
      return 'You have unsaved changes!';
    }
    

    ( Source )但我只想在确实有一些未保存的更改的地方显示对话框。怎么做?

    谢谢!

    1 回复  |  直到 15 年前
        1
  •  8
  •   gnarf    15 年前

    你可以这样做:

    var unsavedChanges = false;
    window.onbeforeunload = function() {
      if (unsavedChanges) return 'You have unsaved changes!';
    }
    
    function makeSomeChange() {
      // do some changes....
      unsavedChanges = true;
    }
    

    你一定要换 unsavedChanges 在“Change”事件处理程序中。