Здравствуйте.
Есть скрипт, который ловит все обновления страницы (при нажатии на ссылку, при обновлении через F5, через CTRL+F5 и т.д.) и перед обновлением появляется окно с сообщением что данные могут быть не сохранены. Нужно сделать для того, чтобы пользователь случайно не обновил страницу когда в форме есть текст.
Нужно сделать так, чтобы при нажатии на ссылку с id="ms-submit-button" окно не появлялось.
Пробовал сделать исключение с помощью jQuery, не получилось.
function Unloader(){
var o = this;
this.unload = function(evt)
{
var message = "Данные не будут сохранены после обновления страницы или перехода";
if($("#taskname").val() != "" || $(".note-editable").text()) { // проверка моих полей на пустоту
if (typeof evt == "undefined") {
evt = window.event;
}
if (evt) {
evt.returnValue = message;
}
return message;
}
}
this.resetUnload = function()
{
$(window).off('beforeunload', o.unload);
setTimeout(function(){
$(window).on('beforeunload', o.unload);
}, 2000);
}
this.init = function()
{
$(window).on('beforeunload', o.unload);
$('a').on('click', function(){o.resetUnload});
$(document).on('submit', 'form', function(){o.resetUnload});
$(document).on('keydown', function(event){
if((event.ctrlKey && event.keyCode == 116) || event.keyCode == 116){
o.resetUnload;
}
});
}
this.init();
}
$(function(){
if(typeof window.obUnloader != 'object')
{
window.obUnloader = new Unloader();
}
})
Ответ
Я так понял, что вам нужен такой результат:
function Unloader() {
var o = this;
this.unload = function(evt) {
var message = "Данные не будут сохранены после обновления страницы или перехода";
if ($("#taskname").val() != "" || $(".note-editable").text()) { // проверка моих полей на пустоту
if (typeof evt == "undefined") {
evt = window.event;
};
if (evt) {
evt.returnValue = message;
};
return message;
};
};
this.resetUnload = function() {
$(window).off('beforeunload', o.unload);
setTimeout(function() {
$(window).on('beforeunload', o.unload);
}, 2000);
};
this.init = function() {
$(window).on('beforeunload', o.unload);
// Клик на a#ms-submit-button
$('a#ms-submit-button').on('click', function() {
$(window).off('beforeunload', o.unload);
setTimeout(function() {
$(window).on('beforeunload', o.unload);
}, 2000);
});
$(document).on('submit', 'form', function() {
o.resetUnload;
});
$(document).on('keydown', function(event) {
if ((event.ctrlKey && event.keyCode == 116) || event.keyCode == 116) {
o.resetUnload;
};
});
};
this.init();
};
$(function() {
if (typeof window.obUnloader != 'object') {
window.obUnloader = new Unloader();
};
});
Комментариев нет:
Отправить комментарий