我有一个使用大量JavaScript(主要是jQuery)的网站,并且我需要一种很好的全局方式来让用户知道,当他们离开特定页面时,他们将丢失未保存的更改。
目前,我在输入上放置了一个onchange事件,并将主导航包裹在一个函数中,该函数将在单击时显示警告。
这感觉确实很笨拙,并且缩放性不好(导航不是主要导航的一部分,需要手动包装,这远非理想)
最佳答案
我的输入上有一个onchange
事件,并在更改时将isDirty
变量设置为true。
然后,我使用onbeforeunload
事件向用户警告有关未保存的更改:
var isDirty = false;
window.onbeforeunload = function (evt) {
if (isDirty) {
return 'If you continue your changes will not be saved.';
}
}