我有一个使用大量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.';
    }
}

09-25 20:13