javascript - jquery beforeunload 关闭(不离开)页面时?

标签 javascript jquery

如何显示“您确定要离开页面?”当用户实际尝试关闭页面时(单击浏览器窗口或选项卡上的 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?';
        });
       }
    }
  })
}

最佳答案

您可以使用 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();

});

此解决方案适用于所有浏览器,我已经对其进行了测试。

关于javascript - jquery beforeunload 关闭(不离开)页面时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18783535/

相关文章:

javascript - [Vue 警告] : inject() can only be used inside setup() or functional components

javascript - 更改 div 中单个列表项的边距

javascript - 根据子项更改 href 值

javascript - jQuery HTML 追加导致 UTF-8 国家语言字符问题

javascript - jQuery Ajax - 仍在重新加载页面 - Laravel 分页

javascript - jquery 和 javascript : two load functions?

JavaScript Canvas : Continuously rotating a canvas drawn image

javascript - 使用 API 动态字段分配表格单元格

javascript - 我如何在 Nodejs Buffer 上像 struct union type 一样处理 C?

javascript - 如何添加localStorage来显示和隐藏div