【问题标题】:Save data if someone is leaving the webpage or closing the webpage如果有人离开网页或关闭网页,则保存数据
【发布时间】:2018-07-20 19:52:01
【问题描述】:

如果有人试图离开网站,我会尝试保存数据。此应用程序需要向用户显示一条消息,说明他将离开该站点,如果他点击离开,那么在离开之前将有一个需要保存的数据。我已经尝试过原生确认框以及定制设计的选项。

如果是定制设计,我想做这样的事情:

window.onbeforeunload = function(e) {
    $('#modal-popup').show();       }

但这确实没有给我想要的结果。我正在尝试在下面绘制我想要做的事情。请帮忙。

关闭标签 --> 显示确认 --> 如果有人接受 ---> Ajax 调用 ---> 否则就让页面保持原样。

【问题讨论】:

    标签: javascript html browser dom-events


    【解决方案1】:

    onbeforeunload 需要一个字符串作为返回值,不幸的是当用户点击停留时代码被执行,而不是离开https://developer.mozilla.org/en-US/docs/Web/Events/beforeunload。看到这个:

    window.onbeforeunload = function() {
      fetch('https://jsonplaceholder.typicode.com/posts/1')
        .then(response => response.json())
        .then(json => console.log(json));
      return "";
    };

    运行代码并尝试关闭此选项卡,然后单击停留。

    【讨论】:

    • 我需要显示一个确认框。当有人说离开页面时,我想保存数据然后离开页面。这可能吗?
    • @ShivKumarGanesh 如果你看到这个 developer.mozilla.org/en-US/docs/Web/Events/… 自定义文本支持被删除,所以使用 return "" 和 return "something custom" 文本是由浏览器提供的,并且总是剩下的代码是当用户点击停留时执行。那么,我认为最好的方法是始终保存数据,当用户点击保持时,因为浏览器提供的文本会阻止用户进行未保存的更改。
    • 所以情况是如果用户离开浏览器,您会删除某些数据。如果他不离开,那么我们就是这样,即没有要求。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-07
    • 1970-01-01
    • 2014-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多