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

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

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

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

谢谢!

最佳答案

您可以执行以下操作:

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

function makeSomeChange() {
  // do some changes....
  unsavedChanges = true;
}

您可以确保在“更改”事件处理程序中更改unsavedChanges

07-25 23:11