Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.05.2015, 00:30
Аспирант
Отправить личное сообщение для Clodan Посмотреть профиль Найти все сообщения от Clodan
 
Регистрация: 04.01.2013
Сообщений: 33

Помогите отменить .onbeforeunload при переходе по внутренним ссылкам
Здравствуйте!

Помогите решить пожалуй банальную задачу, над которой бьюсь уже не один час из-за нехватки знания.

Есть код:
<script>window.onbeforeunload=function(){$.removeCookie('visit');}</script>


Который чистит куки при закрытии страницы, однако он делает это и при переходе по внутренним ссылкам на сайта. После небольшого поиска, понял что наиболее распространенным решением этой проблемы является
window.onbeforeunload=null;
который можно повесить например на все ссылки <a> на сайте, но это как-раз таки у меня и не получается

Подскажите пожалуйста как правильно все это оформить? Заранее спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 25.05.2015, 08:26
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от Clodan
После небольшого поиска, понял что наиболее распространенным решением этой проблемы является
window.onbeforeunload=null;
который можно повесить например на все ссылки <a> на сайте, но это как-раз таки у меня и не получается
Есть целая статья по работе с событиями...
http://javascript.ru/tutorial/events/crossbrowser
Ответить с цитированием
  #3 (permalink)  
Старый 27.05.2015, 19:05
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от Clodan
Который чистит куки при закрытии страницы,
Не при закрытии, а до закрытия, которым сопровождается любое открытие.

Вашу идею в браузере нельзя реализовать. Можно только сделать так, чтобы куки подыхали когда браузер закроют. Иначе при каждом переходе по ссылкам или просто обновлении страницы куки будут исправно стираться и толку с них тогда никакого.
Ответить с цитированием
  #4 (permalink)  
Старый 27.05.2015, 19:14
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от Clodan
но это как-раз таки у меня и не получается
Потому что все ссылки придется пропускать через js.

/* где-то было навешано */
window.addEventListener('onbeforeunload',callback);

/* вешаем генерально */
document.body.addEventListener('click',function(e){
    if(e.target.nodeName=='A'){
       window.removeEventListener('onbeforeunload',callback);
       return location.href=e.target.href;
   }
});


Или типа того.

PS Может кто-нибудь из соискателей onbeforeunload объяснить за каким членом-корреспондентом надо стирать куки до закрытия страницы?

Вообще эта фича служит обычной цели подсказать юзеру чего-нить там сохранить из несохраненного на странице или закрыть, или типа того, как это предусмотрено в нормальных десктоп программах. При чем тут вообще кукисы?

Последний раз редактировалось kostyanet, 27.05.2015 в 19:18.
Ответить с цитированием
  #5 (permalink)  
Старый 27.05.2015, 19:23
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Например

saving_tip=function(e){
	for(var name in inputs)
		if(inputs[name].dirty())
			return (e||window.event).returnValue='\o/';
},

/* below */
if(opts.saving_tip)
	W.addEventListener('beforeunload',saving_tip,false);

/* 
это когда после аякса приходит команда пойти нах 
и чтоб без вопросов пойти, то онбефореунлоад надо отменить сперва
*/
if(typeof data.Location!==U) {
	W.removeEventListener('beforeunload',saving_tip,false);
	return W.location.assign(data.Location);
}


Стандартная схема. А куки при чем тут?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отменить submit формы при нажатии enter MaxStoun Events/DOM/Window 5 07.04.2011 19:00
ПОМОГИТЕ !!! Активные пункты меню при наведении на ссылку Salo jQuery 4 08.12.2010 12:49
Как подменять ФАЙЛ CSS при клике нассылку!!!! СРОЧНО ПОМОГИТЕ. pavdin Общие вопросы Javascript 4 02.12.2010 20:44
Помогите создать скрипт замены картинок при наведении курсора. SantaS Я не знаю javascript 3 05.06.2009 12:59
Как отменить прокрутку при клике Alekson jQuery 1 30.03.2009 20:53