在浏览器关闭时,单击确认对话框中的“停留在页面上”,执行一个方法

Execute a method upon clicking stay on page in confirmation dialog on browser close

本文关键字:执行 一个 方法 浏览器 单击 确认 对话框 停留在      更新时间:2023-09-26

我知道了当用户试图关闭浏览器时,我们如何获得弹出窗口。现在我的问题是,如果用户说"停留在页面上",我们如何执行某段代码?这个按钮有点击处理程序吗?

尝试使用onbeforeunload事件。

(function () {
    var oldMousemove = document.body.onmousemove,
        onCancel = function () {
            // Do something if the user stays.
            document.body.onmousemove = oldMousemove;
        };
    window.onbeforeunload = function() {
        document.body.onmousemove = onCancel;
        return 'Do you really want to leave?';
    };
})();

注意:大多数浏览器不会尊重自定义提示语句,而是倾向于自己的提示语句。

    <script>
    (function(){
      window.onbeforeunload = function (e) { 
        if(!e) var e = window.event;
        e.cancelBubble = true;
        e.returnValue = false;
        if (e.stopPropagation) {
          e.stopPropagation();
          e.preventDefault();
        }
        return false;
      }
    }());
</script>

适用于Firefox和IE 9