在离开窗口之前询问Javascript功能状态是否为真

时间:2016-08-19 13:57:07

标签: javascript

我有一个activestatus var告诉是否保存到文件,如果没有保存文件activestatus将是真的,如果用户按下浏览器或尝试键入不同的URL并且他应该弹出说"您还没有保存要保存的更改?是否"。

这是我到目前为止所尝试的内容

var activeInput=true;
 window.onbeforeunload =checkNow;

    function checkNow(){
        if(activeInput==true){
            alert('please save your changes');
            return "Do you want to leave?"
        }else{
            alert('gonow');
            return true;
        }

    } 

基本上我只想在用户想要离开窗口并且没有保存到文件时调用函数。

1 个答案:

答案 0 :(得分:2)

尝试使用addEventListener,并使用e.returnValue来显示消息。

var activeInput=true;

window.addEventListener('beforeunload', checkNow);

function checkNow(e) {
        if (activeInput === false) return true;
        var message = "Are you sure you want to leave this page? Ensure you save any changes.";
        e.returnValue = message;
        return message;
}

这是jsFiddle。您可以详细了解onbeforeunload事件,包括e.returnValue here的行为。