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

标签 javascript

我有一个 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/

相关文章:

javascript - 使用外部按钮控制 CSS 转换?

javascript - 滚动 overflow hidden 的 div 以将其中的元素居中

javascript - 缩短 Ajax 代码

javascript - 在javascript中动态地将用户输入字段中的数据添加到表中

javascript - Node.js - 将上下文传递给函数属性中的嵌套对象

javascript - 将变量传递给 jQuery 函数

javascript - 单击子链接时如何停止垂直菜单的 Accordion 。?

javascript - 上一个下一个按钮响应

javascript - 为什么 Content-Security-Policy 会强制 Chrome 按顺序加载 Javascript?

Javascript以编程方式调用Chrome对话框打印的 "Save as PDF"功能