Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.12.2014, 13:47
Новичок на форуме
Отправить личное сообщение для ToshuK Посмотреть профиль Найти все сообщения от ToshuK
 
Регистрация: 18.10.2014
Сообщений: 9

Скрипт подтверждения закрытия страницы
Здравствуйте!

Есть скрипт:
<script>
function closeOrNot(e) {
if(!e) e = window.event;
e.cancelBubble = true;
e.returnValue = '';
if (e.stopPropagation) {
e.stopPropagation();
e.preventDefault();
}
}
window.onbeforeunload=closeOrNot;
</script>


Он дает сообщение с просьбой подтвердить закрытие вкладки, но также он выдает это сообщение когда переходишь на другую страницу.

Помогите пожалуйста отключить запрос при переходе страницы... Нужно что-бы спрашивало только когда пользователь закрывает вкладку...
Ответить с цитированием
  #2 (permalink)  
Старый 25.12.2014, 14:59
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Убери просто это подтверждение. Оно нужно для предотвращения потери введенных в формы данных, которое может произойти не только при уходе с сайта, но и переходе по страницам внутри сайта.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 25.12.2014, 15:25
Новичок на форуме
Отправить личное сообщение для ToshuK Посмотреть профиль Найти все сообщения от ToshuK
 
Регистрация: 18.10.2014
Сообщений: 9

Нет, это подтверждение мне нужно. Но оно мешает, оно срабатывает когда пытаешься отправить форму, это очень не нужно...
Ответить с цитированием
  #4 (permalink)  
Старый 25.12.2014, 16:14
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
//код не мой: http://mattweb.ru/moi-raboty/item/107-js-skript-podtverzhdenie-zakrytiya-stranitsy
function Unloader(){

    var o = this;

    this.unload = function(evt)
    {
        var message = "Вы уверены, что хотите закрыть страницу?";
        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);
        }, 1000);
    }

    this.init = function()
    {
        $(window).on('beforeunload', o.unload);

        $('a').on('click', o.resetUnload);
        $(document).on('submit', 'form', 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();
    }
})
</script>
<a href="#">Link</a>
<a href="#">Link</a>
<a href="#">Link</a>

Если щёлкать по странице (отправлять форму, F5), то ничего не происходит, а если закрыть, то произойдёт.
Ответить с цитированием
  #5 (permalink)  
Старый 25.12.2014, 22:22
Новичок на форуме
Отправить личное сообщение для ToshuK Посмотреть профиль Найти все сообщения от ToshuK
 
Регистрация: 18.10.2014
Сообщений: 9

Нет, не работает. Все равно не дает отправить форму, запрашивает подтверждение...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт срабатывает после перезагрузки страницы weare138 Events/DOM/Window 4 10.11.2014 16:46
Нужен небольшой скрипт, разовая работа Galyanov Работа 4 04.08.2014 09:00
Почему скрипт не работает с данными, которые вернул другой скрипт? Rooner jQuery 3 20.09.2012 14:56
Изменить скрипт Изучаю_JS Общие вопросы Javascript 0 12.02.2012 22:05
Работа. Сделать скрипт динамической подгрузки контента. alex1307 Работа 2 28.09.2011 21:46