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

Подтверждение перед закрытием вкладки/браузера

Как запросить подтверждение у пользователя до того, как он покинет страницу, как в gmail?

Я искал этот вопрос в разных местах, но все, о чем они упоминают, это использование javascript window.unload и window.onbeforeunload. Кроме того, он не работает в большинстве случаев, когда он блокируется.

4b9b3361

Ответ 1

Попробуйте следующее:

<script>
window.onbeforeunload = function (e) {
    e = e || window.event;

    // For IE and Firefox prior to version 4
    if (e) {
        e.returnValue = 'Sure?';
    }

    // For Safari
    return 'Sure?';
};
</script>

Вот рабочий jsFiddle

Ответ 2

Попробуйте следующее:

<script>
    window.onbeforeunload = function(e) {
       return 'Dialog text here.';
    };
</script>

подробнее здесь MDN.

Ответ 3

Я прочитал комментарии к набору ответов как Хорошо. Большая часть пользователей спрашивает, что кнопка и некоторые ссылки должны быть разрешены. Здесь добавляется еще одна строка к существующему коду, который будет работать.

<script type="text/javascript">
  var hook = true;
  window.onbeforeunload = function() {
    if (hook) {

      return "Did you save your stuff?"
    }
  }
  function unhook() {
    hook=false;
  }

Call unhook() onClick для кнопки и ссылок, которые вы хотите разрешить. Например.

<a href="#" onClick="unhook()">This link will allow navigation</a>

Ответ 4

Просто

function goodbye(e) {
        if(!e) e = window.event;
        //e.cancelBubble is supported by IE - this will kill the bubbling process.
        e.cancelBubble = true;
        e.returnValue = 'You sure you want to leave?'; //This is displayed on the dialog

        //e.stopPropagation works in Firefox.
        if (e.stopPropagation) {
            e.stopPropagation();
            e.preventDefault();
        }
    }
window.onbeforeunload=goodbye;

Ответ 5

Если вы хотите спросить на основании условия:

var ask = true
window.onbeforeunload = function (e) {
    if(!ask) return null
    e = e || window.event;
    //old browsers
    if (e) {e.returnValue = 'Sure?';}
    //safari, chrome(chrome ignores text)
    return 'Sure?';
};

Ответ 6

бросьте это в свой javascript, где вы хотите, чтобы он появился

window.onbeforeunload = "Are you sure you want to leave?";