在离开窗口前询问if状态是否为真

Javascript funtion to ask before leaving window of if status is true

本文关键字:状态 是否 if 离开 开窗口      更新时间:2023-09-26

我有一个activestatus变量,它告诉是否保存到文件,如果文件没有保存,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;
        }
    } 

基本上,我想调用一个函数,只有当用户想要离开窗口,并没有保存到文件。

尝试使用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的行为。