如何在适当时候显示onbeforeunload对话框?

7

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

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

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

(来源) 但我只想在确实存在未保存的更改时才显示对话框。如何做到这一点?谢谢!
1个回答

9
您可以像这样做:
var unsavedChanges = false;
window.onbeforeunload = function() {
  if (unsavedChanges) return 'You have unsaved changes!';
}

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

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

可以了!我之前返回的是空字符串,而不是像你写的那样返回 null 或 undefined。谢谢! - MartyIX

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接