即使我点击Stay on Page,event fire window.beforeunload

时间:2016-05-09 06:59:14

标签: javascript jquery ajax

$(window).bind('beforeunload', function() {

    return "Content will be deleted";
    Cookies.remove('title');
    Cookies.remove('description');
    Cookies.remove('imageCollection');
    Cookies.remove('imageIdCollection');

     $.ajax({
       url: "<?php echo base_url(); ?>myController/myFunction",
       type:'POST',
             }).done(function (data){
                 $("#display").html(data);
                 $('#loadingmessage').hide();

             });

         });

当我导航到另一个页面时,它会显示警告“离开页面”或“留在页面上”,并且无论我点击停留在页面上,都会触发ajax功能。

如果用户点击“留在页面上”,如何停止进一步的功能。

如果用户点击“离开页面:

”,我想调用此方法
    Cookies.remove('title');
    Cookies.remove('description');
    Cookies.remove('imageCollection');
    Cookies.remove('imageIdCollection');

     $.ajax({
       url: "<?php echo base_url(); ?>myController/myFunction",
       type:'POST',
             }).done(function (data){
                 $("#display").html(data);
                 $('#loadingmessage').hide();

             });

是否有任何事件可以处理“Stay On Page”和“Leave Page”按钮。

2 个答案:

答案 0 :(得分:0)

您的代码无法访问,并且会在控制台上抛出错误。

 Cookies.remove('title');
Cookies.remove('description');
Cookies.remove('imageCollection');
Cookies.remove('imageIdCollection');

 $.ajax({
   url: "<?php echo base_url(); ?>myController/myFunction",
   type:'POST',
         }).done(function (data){
             $("#display").html(data);
             $('#loadingmessage').hide();

         });

     });

你应该将此代码移动到&#34;卸载&#34;事件而不是beforeunload。

$(window).bind('beforeunload', function() {

return "Content will be deleted";
});

$(window).bind('unload', function() {
       Cookies.remove('title');
       Cookies.remove('description');
       Cookies.remove('imageCollection');
       Cookies.remove('imageIdCollection');

 $.ajax({
   url: "<?php echo base_url(); ?>myController/myFunction",
   type:'POST',
         }).done(function (data){
             $("#display").html(data);
             $('#loadingmessage').hide();

         });


});

这应该适合你。

答案 1 :(得分:0)

您可以参考以下代码:

var timeout;

function leavePage() {
    timeout = setTimeout(function() {
        Cookies.remove('title');
        Cookies.remove('description');
        Cookies.remove('imageCollection');
        Cookies.remove('imageIdCollection');

        $.ajax({
          url: "<?php echo base_url(); ?>myController/myFunction",
          type:'POST',
        }).done(function (data){
          $("#display").html(data);
          $('#loadingmessage').hide();
        });
    }, 1000);
    return "You are leaving the page";
}

function clear() {
    clearTimeout(timeout);
}

window.onbeforeunload = leavePage;
window.unload = clear;​