1

Наблюдаемые сценарии:не работает должным образом OnUnload

1) При закрытии браузера, то beforeunload событие вызывается, но unload событие не увольняют.

2) При закрытии вкладки запускаются как событие beforeunload, так и событие unload.

Вопрос:

Как я могу стрелять метод unload при закрытии браузера?

Код:

var inFormOrLink = false; 
    var flag = false; 

    $(document).ready(function() { 
     $(window).bind("beforeunload", function() { 
       return "You are about to close the window"; 
     }); 
     $(window).on("unload", function() { 
      if (!inFormOrLink) 
       window.open('../Account/Login?admin=admin', "_blank"); 
     }); 
    }); 

    $(function() { 
     $("a").click(function() { 

      if (!flag) { 
       inFormOrLink = true; 
       $(window).unbind('beforeunload'); 
       $(window).unbind('unload'); 
      } 
      else { 
       // inFormOrLink = false; 
       $(window).bind('beforeunload'); 
       $(window).bind('unload'); 
      } 
     }); 

     $(".btn").click(function() { 

      if (!flag) { 
       inFormOrLink = true; 
       $(window).unbind('beforeunload'); 
       $(window).unbind('unload'); 
      } 
      else { 
       inFormOrLink = false; 
       flag = false; 
       $(window).bind('beforeunload'); 
       $(window).bind('unload'); 
      } 

     }); 
     $("body").keydown(function (e) { 
      if (e.which == 116 || e.which == 117) { 
       inFormOrLink = true; 
      } 
      else if (e.ctrlKey && e.keyCode == 82) { 
       inFormOrLink = true; 
      } 
      else if (e.which == 8) { 
       var tag = e.target.tagName.toLowerCase(); 
       inFormOrLink = true; 
       if (tag != "input") { 
        e.preventDefault(); 
       } 
      } 
      else { 
       inFormOrLink = false; 
       $(window).bind('unload'); 
      } 
     }); 
    }); 

'

ответ

0

onunload событие теоретически должно работать в случае, если вы упомянули, однако, есть много браузеров и каждый реализует другую команду. Поскольку вы наблюдали ошибку в нескольких браузерах, я предлагаю вам привязать обработчики событий к beforeunload вместо unload. В этом случае вы работаете над проблемой. Другой возможностью является запуск события unload, например:

$(window).unload(); 

 Смежные вопросы

  • Нет связанных вопросов^_^