Вы не можете изменить диалог по умолчанию для onbeforeunload
, таким образом, Ваш лучший выбор может состоять в том, чтобы работать с ним.
window.onbeforeunload = function() {
return 'You have unsaved changes!';
}
Вот ссылка к этому от Microsoft:
, Когда строка присвоена returnValue свойству window.event, диалоговое окно появляется, который дает пользователям опцию остаться на текущей странице и сохранить строку, которая была присвоена ему. Оператор по умолчанию, который появляется в диалоговом окне, "Действительно ли Вы, уверен, что Вы хотите перейти далеко от этой страницы?... Нажмите OK, чтобы продолжить, или Отменить для пребывания на текущей странице". не может быть удален или изменен.
проблема, кажется:
onbeforeunload
будет назван, это возьмет возвращаемое значение обработчика как window.event.returnValue
. false
анализируется как строка, диалоговое окно будет стрелять, который тогда передаст соответствующее true
/ false
. результат, кажется, нет способа присвоиться false
к onbeforeunload
для предотвращения его от диалога по умолчанию.
Дополнительные примечания по jQuery:
onbeforeunload
события происходить также. Если бы Вы желаете только Вашего разгружать событие для появления, я придерживался бы простого JavaScript для него. jQuery не имеет ярлыка для [1 111], таким образом, необходимо было бы использовать дженерик bind
синтаксис.
$(window).bind('beforeunload', function() {} );
09/04/2018 Редактирования: пользовательские сообщения в onbeforeunload диалоговых окнах удерживаются от использования начиная с хрома 51 (cf: информация о версии )
А как насчет использования специализированной версии команды «привязать» «один». Когда обработчик событий запускается в первый раз, он автоматически удаляется как обработчик событий.
$(window).one("beforeunload", BeforeUnload);