在浏览器上重载/刷新/关闭警报,然后ajax


on browser reload/refresh/close alert and then ajax

是否可以在浏览器关闭时触发警报?如果用户确认"重新加载/关闭",然后想要执行一些ajax的东西。这是我迄今为止尝试过的

window.onbeforeunload = function () {
    return 'This will close your chat session. Are you Sure!';
    var meta_id = $('#meta_id').val();
    $.ajax({
        url: site_url + '/chat/send_offline',
        type: 'post',
        cache: false,
        async: false,
        data: {
            meta_id: meta_id
        }
    });
}

据我所知,代码在return语句之后不执行。所以它是可能的警报和执行ajax代码同时如果用户确认??

我在MDN文档中找到了这个

window.addEventListener("beforeunload", function (e) {
  var confirmationMessage = "Do you want to leave this page ?";
  // Call AJAX RIGHT HERE
  e.returnValue = confirmationMessage;     // Gecko and Trident
  return confirmationMessage;              // Gecko and WebKit
});

必须在函数返回之前调用Ajax。因为return会中断函数的执行

也许chrome.runtime.onSuspend或chrome.windows.onRemoved会帮助你?

相关文章: