猿问

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

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

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


慕妹3146593
浏览 867回答 3
3回答

波斯汪

您可以使用JQuery来完成此操作。对于例如,<a&nbsp;href="your&nbsp;URL"&nbsp;id="navigate">&nbsp;click&nbsp;here&nbsp;</a>你的JQuery意志,$(document).ready(function(){ &nbsp;&nbsp;&nbsp;&nbsp;$('a').on('mousedown',&nbsp;stopNavigate); &nbsp;&nbsp;&nbsp;&nbsp;$('a').on('mouseleave',&nbsp;function&nbsp;()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(window).on('beforeunload',&nbsp;function(){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;'Are&nbsp;you&nbsp;sure&nbsp;you&nbsp;want&nbsp;to&nbsp;leave?'; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}); &nbsp;&nbsp;&nbsp;&nbsp;});});function&nbsp;stopNavigate(){&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;$(window).off('beforeunload');}并获得离开消息警报,$(window).on('beforeunload',&nbsp;function(){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;'Are&nbsp;you&nbsp;sure&nbsp;you&nbsp;want&nbsp;to&nbsp;leave?';});$(window).on('unload',&nbsp;function(){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logout();});此解决方案适用于所有浏览器,我已对其进行了测试。

慕田峪9158850

基本上,该解决方案添加了一个侦听器来检测链接或窗口是否导致卸载事件被触发。var&nbsp;link_was_clicked&nbsp;=&nbsp;false;document.addEventListener("click",&nbsp;function(e)&nbsp;{ &nbsp;&nbsp;&nbsp;if&nbsp;(e.target.nodeName.toLowerCase()&nbsp;===&nbsp;'a')&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;link_was_clicked&nbsp;=&nbsp;true; &nbsp;&nbsp;&nbsp;}},&nbsp;true);window.onbeforeunload&nbsp;=&nbsp;function(e)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;if(link_was_clicked)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;confirm('Are&nbsp;you&nbsp;sure?');}
随时随地看视频慕课网APP
我要回答