在离开状态窗口前询问状态是否为true的Javascript函数

在离开状态窗口前询问状态是否为true的Javascript函数,javascript,Javascript,我有一个activestatus变量,它告诉我们是否保存到文件,如果文件未保存,则activestatus将为true。在这种情况下,如果用户按下浏览器返回或尝试键入不同的url并继续,他应该会弹出一个窗口,说“您尚未保存要保存的更改?是否” 这是我到目前为止试过的 var activeInput=true; window.onbeforeunload =checkNow; function checkNow(){ if(activeInput==true){

我有一个activestatus变量,它告诉我们是否保存到文件,如果文件未保存,则activestatus将为true。在这种情况下,如果用户按下浏览器返回或尝试键入不同的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;
}

这是一本书。您可以阅读有关
onbeforeuload
事件的更多信息,包括
e.returnValue

尝试使用
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;
}

这是一本书。您可以阅读有关
onbeforeunload
事件的更多信息,包括
e.returnValue

基于我要调用的变量的可能重复基于我要调用的变量的可能重复call@SudarshanKalebere如果它对你有用,请把它标对。上面写着“等5分钟”,所以我在等你,它表示您可以在2分钟内接受ans您编写的消息没有被调用,它是调用默认消息,并且当我的activeINput为true时它正在运行。如何捕获用户按下的是/否结果输入?您的代码中没有if和else的情况,它只是在所有情况下重新加载,主要问题是我有保存按钮,单击保存按钮它也会重新加载。@SudarshanKalebere如果它对您有效,请将其标记为正确。它说等待5分钟,所以我正在等待,它说您可以在2分钟内接受ans您编写的消息没有被调用,它调用默认消息,并且当我的activeINput为true时它正在运行。如何捕获用户按下的是/否结果输入?在你们的代码中并没有if和else的情况,它只是在所有情况下重新加载,主要的问题是我有save按钮,点击save按钮它也会重新加载。