在用户确认之前,如何防止页面卸载?

时间:2019-01-09 08:16:19

标签: javascript jquery onbeforeunload magnific-popup

我出现了弹出窗口,但是页面继续卸载。 在单击.js-close或提交弹出窗口中的表单之前,如何防止页面卸载?

$(document).ready(() => {
    window.onbeforeunload = () => {
        const newsSubscribePopup = $('#news-subscribe-popup');

        if (newsSubscribePopup.length) {
            $.magnificPopup.open({
                items: {
                    src: newsSubscribePopup,
                },
                type: 'inline',
                preloader: true,
                modal: true,
                showCloseBtn: false,
            });
        }
    };
});`

1 个答案:

答案 0 :(得分:0)

您可以在onclick处理程序中使用confirm()函数。
这是简单的示例:

<div class="js-close" data-confirm="Are you sure to delete this item?">action</div>

$('.js-close').on( "click", function() {

      var choice = confirm($(this).attr("data-confirm"));

      if (choice) {
        alert('ok');
      }else{
        alert('no');
      }

});

http://jsfiddle.net/spbjqvgw/