小编典典

关闭(不离开)页面时的jQuery beforeunload?

javascript

如何显示“您确定要离开页面吗?” 当用户实际上试图关闭页面(单击浏览器窗口或选项卡上的X按钮)时,而不是当用户试图离开页面导航(单击另一个链接)时。

我的客户希望用户尝试关闭页面时显示一条消息“您确定要离开页面吗?您的购物车中仍然有商品。”

不幸的是$(window).bind('beforeunload'),仅当用户关闭页面时才会触发。

jQuery的:

function checkCart() { 
  $.ajax({
    url : 'index.php?route=module/cart/check',
    type : 'POST',
    dataType : 'json',
    success : function (result) {
       if (result) {
        $(window).bind('beforeunload', function(){
          return 'leave?';
        });
       }
    }
  })
}

阅读 760

收藏
2020-05-01

共1个答案

小编典典

您可以使用 JQuery 做到这一点。

对于 例如

<a href="your URL" id="navigate"> click here </a>

JQuery会的

$(document).ready(function(){

    $('a').on('mousedown', stopNavigate);

    $('a').on('mouseleave', function () {
           $(window).on('beforeunload', function(){
                  return 'Are you sure you want to leave?';
           });
    });
});

function stopNavigate(){    
    $(window).off('beforeunload');
}

为了获得“ 离开消息”警报

$(window).on('beforeunload', function(){
      return 'Are you sure you want to leave?';
});

$(window).on('unload', function(){

         logout();

});

该解决方案适用于所有浏览器,并且已经过测试。

2020-05-01