Помогите отменить .onbeforeunload при переходе по внутренним ссылкам
Здравствуйте!
Помогите решить пожалуй банальную задачу, над которой бьюсь уже не один час из-за нехватки знания. Есть код: <script>window.onbeforeunload=function(){$.removeCookie('visit');}</script> Который чистит куки при закрытии страницы, однако он делает это и при переходе по внутренним ссылкам на сайта. После небольшого поиска, понял что наиболее распространенным решением этой проблемы является window.onbeforeunload=null;который можно повесить например на все ссылки <a> на сайте, но это как-раз таки у меня и не получается :( Подскажите пожалуйста как правильно все это оформить? Заранее спасибо. |
Цитата:
http://javascript.ru/tutorial/events/crossbrowser |
Цитата:
Вашу идею в браузере нельзя реализовать. Можно только сделать так, чтобы куки подыхали когда браузер закроют. Иначе при каждом переходе по ссылкам или просто обновлении страницы куки будут исправно стираться и толку с них тогда никакого. |
Цитата:
/* где-то было навешано */ 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 объяснить за каким членом-корреспондентом надо стирать куки до закрытия страницы? Вообще эта фича служит обычной цели подсказать юзеру чего-нить там сохранить из несохраненного на странице или закрыть, или типа того, как это предусмотрено в нормальных десктоп программах. При чем тут вообще кукисы? |
Например
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); } Стандартная схема. А куки при чем тут? |
Часовой пояс GMT +3, время: 18:29. |