Подтвердить что ты не робот

Как управлять диалоговым окном подтверждения браузера при выходе из страницы?

Я знаю, что в этом есть много вопросов, но ничто не отвечает мне правильно. Я хочу показать диалог подтверждения, когда пользователь покидает страницу. Если пользователь нажмет "Отмена", он останется на странице, и если OK, изменения, которые он сделал, будут отменены, вызвав метод. Я сделал вот так:

window.onbeforeunload = function () {
  var r = confirm( "Do you want to leave?" );
  if (r == true) {
       //I will call my method
  }
  else {
      return false;
  }
};

Проблема в том, что я получаю всплывающее окно браузера: "LeavePage/StayOnPage"

Эта страница просит вас подтвердить, что вы хотите уйти - данные, которые вы не могут быть сохранены.

Это сообщение показано в Firefox, в Chrome немного отличается. Я получаю это всплывающее окно после того, как я нажму ОК в первом диалоговом окне подтверждения.

Есть ли способ не показывать этот диалог? (второй, который я не создал). Или, если есть какой-либо способ контролировать это всплывающее окно, кто-нибудь знает, как это сделать? Благодаря

4b9b3361

Ответ 1

Вот что я сделал, измените в соответствии с вашими потребностями:

// This default onbeforeunload event
window.onbeforeunload = function(){
    return "Do you want to leave?"
}

// A jQuery event (I think), which is triggered after "onbeforeunload"
$(window).unload(function(){
    //I will call my method
});

Примечание: он протестирован для работы в Google Chrome, IE8 и IE10.