2014-10-09 4 views
0

Я пытаюсь показать окно подтверждения, когда пользователь покидает страницу, а затем использовать его возвращаемое значение в onbeforeunload обработчиком/функция какНеожиданное поведение onbeforeunload обработчика/функции в FireFox 32.0.3 и IE

window.onbeforeunload = closingCode; 
    function closingCode(){ 
    return confirm("You are leaving the page without saving some data. Do you want to continue?"); 
} 

Когда эта функция выполняется в указанной версии firefox, окно закрывается или обновляется без отображения диалогового окна подтверждения. Я попытался отладить скрипт с помощью firebug, который показывает, что эта функция выполняется.

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

window.onbeforeunload = closingCode; 
     function closingCode(){ 
     return false; 
    } 

В Internet Explorer 8 первый фрагмент кода приводит к двум диалоговым окнам подтверждения. Один мой, а другой - по умолчанию для браузера. тогда как второй фрагмент ведет себя одинаково.

Я протестировал эту функцию здесь в stackoverflow и обнаружил, что он также показывает встроенный диалог подтверждения с тем же общим сообщением.

Возможно ли открыть диалог window.confirm() с нужным сообщением в onbeforeunload обработчик/функция или нет? Если да, то любезно скажите мне, как это сделать. Еще, скажите, почему это невозможно и укажите некоторые связанные ссылки.

ответ

0

Обработчик onbeforeunload должен возвращать строку. Затем браузер отобразит это сообщение в командной строке.

function closingCode() { 
    return "You are leaving the page without saving some data. Do you want to continue?"; 
} 
+0

В IE возвращаемая строка появляется вместе с общим сообщением, но в firefox имеется только общее сообщение. – gahse

+1

http://stackoverflow.com/questions/5398772/firefox-4-onbeforeunload-custom-message – Barmar

+0

Вот что я хочу. Большое спасибо, сэр. – gahse