Мне нужно отобразить диалоговое окно подтверждения перед закрытием окна браузера с помощью 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()">