我有一个 activestatus var,它告诉保存到文件是否完成,如果文件未保存,则 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;
}
这是一个jsFiddle 。您可以阅读有关 onbeforeunload
事件的更多信息,包括 e.returnValue
here 的行为.
关于Javascript 函数在离开窗口之前询问状态是否为 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39040892/