Подтвердить диалог при закрытии браузера?

Мне нужно отобразить диалоговое окно подтверждения перед закрытием окна браузера с помощью javascript или PHP. поле подтверждения должно появиться, когда я нажму кнопку закрытия браузера. другие мудрые не отображают диалог. пожалуйста, помогите мне.

Ответ 1

Вам нужно обработать событие onbeforeunload...

function closeEditorWarning(){
    return 'Are you sure?'
}
window.onbeforeunload = closeEditorWarning;

Или используйте jquery, window.attachEvent/window.addEventListener, чтобы сделать это красиво

Ответ 2

onunload не очень полезен (на мой взгляд), поскольку вы ничего не можете сделать с запросом confirm, который вы запрашиваете (за исключением, возможно, попытки создать новое окно с window.open, поэтому onbeforeunload более полезно для этого случая.

Ваша лучшая ставка - onbeforeunload, что здорово, но не будет работать в Opera (хотя это обычно не прерывание сделки).

Как сказал плющ, он выглядел бы примерно так:

<script>

    var userIsEditingSomething; // set this if something crazy happens
        oldOnBeforeUnload = window.onbeforeunload;

    window.onbeforeunload = function () {
        // attempt to handle a previous onbeforeunload
        if ('function' === typeof oldOnBeforeUnload) {
            var message = oldOnBeforeUnload();
            if ('undefined' !== typeof message) {
                if (confirm('string' === typeof message ? message : 'Are you sure you want to leave this page?')) {
                    return; // allow user to exit without further annoying pop-ups
                }
            }
        }
        // handle our own
        if (userIsEditingSomething) {
            return 'Are you sure you want to exit?';
        }
    };

</script>

Ответ 3

function doUnload()
{
  // use confirm dialog box here
   confirm("Window is closing...");

}

<body onunload="doUnload()">