2015-04-15 1 views
6

Я пытаюсь показать сообщение пользователю перед закрытием окна. Я использую SweetAlert (http://tristanedwards.me/sweetalert), который работает нормально.Запуск SweetAlert, чтобы пользователь не закрывал окно

Проблема связана с JavaScript/jQuery, чтобы сообщить мне, когда пользователь пытается закрыть окно/вкладку, а затем отобразить что-то, препятствующее закрытию страницы, если он не щелкнет снова.

<script language="JavaScript"> 
    window.onbeforeunload = confirmExit; 
    function confirmExit() { 
     swal("Here's a message!"); 
     return "You have attempted to leave this page. Are you sure?"; 
    } 
</script> 

Я попытался это, но он отображает уродливые обычное сообщение на вершине моего SweetAlert, какие-то идеи? Без возвратной части он все равно закрывает окно, я пытался:/

+0

Вы можете показать это на своем сайте? просто этим фрагментом кода будет сложно определить проблему. –

+0

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

+0

попробуйте использовать 'return;' вместо текущего, который вы используете –

ответ

7

You can't disable the alert, nor change the style of the alert on onbeforeunload. Основная причина - проблемы безопасности.

От MDN документа, WindowEventHandlers.onbeforeunload, он говорит,

Когда это событие возвращает непустое значение, то пользователю будет предложено подтвердить страницу выгрузку. В большинстве браузеров в этом диалоговом окне отображается возвращаемое значение события. В Firefox 4 и более поздних версиях возвращаемая строка не отображается пользователю. Вместо этого Firefox отображает строку «Эта страница просит вас подтвердить, что вы хотите уйти - данные, которые вы ввели, не могут быть сохранены». См. Исправление 588292.

С 25 мая 2011 года спецификация HTML5 заявляет, что вызовы методов window.alert(), window.confirm() и window.prompt() могут игнорироваться во время этого события. Дополнительную информацию см. В спецификации HTML5.

Обратите внимание, что различные мобильные браузеры игнорируют результат события (то есть не запрашивают у пользователя подтверждения). Firefox имеет скрытое предпочтение примерно: config сделать то же самое. По сути, это означает, что пользователь всегда подтверждает, что документ может быть выгружен.

Смежные вопросы