Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Очищение куков по событию .onbeforeunload (https://javascript.ru/forum/dom-window/55988-ochishhenie-kukov-po-sobytiyu-onbeforeunload.html)

Clodan 24.05.2015 20:38

Очищение куков по событию .onbeforeunload
 
Здравствуйте!

Есть скрипт который выводит всплывающее облако на сайте в зависимости от куков, то есть если человек не был сайте, выводится скрытый контент, если уже был, то ничего не происходит, вот собственно сам скрипт...
$(document).ready(function(){
    var pp     = $("#pp"),
        bg     = $("#oval-thought-border");

    function pp_show(pp ){
       setTimeout(function(){bg.fadeIn(1000);},5000), setTimeout(function(){bg.fadeOut(1000);},15000);
    }

    if ( $.cookie('visit') == undefined ){
        $.cookie('visit', true);
        pp_show(pp, bg);
    } 
});


Однако нужно реализовать очистку куков по событию ".onbeforeunload", то есть чтобы при закрытии сайта запись в куках исчезала и при повтором посещении сайта, информация снова появлялась. В конечном итоге, должна получиться следующая структура: человек заходит на любую страницу сайта и через 5 секунд всплывает облако "#oval-thought-border", далее при переходе между страницами сайта, ничего не должно выполняться, а вот после закрытия страницы и повторного ее открытия, все бы начиналось сначала.

Ссылка на сайт: http://3dm2.ru
Речь идет об облаке с предоставлением скидки в правом верхнем углу.

Обладаю минимальными знаниями в java, поэтому сам решить задачу не могу, поиск толком ничего не дал. Буду рад любой помощи, заранее спасибо!

kostyanet 24.05.2015 20:44

Цитата:

Сообщение от Clodan
а вот после закрытия страницы

Вы верите в жизнь скрипта после смерти документа? Короче, ее там нет. Убить куки можно либо сразу, то есть бефоре унлоад, либо нельзя.

То есть юзер жмет обновить или закрыть - куки убиваются, а потом ему задают вопросы - хотите уйти?

kostyanet 24.05.2015 20:47

Вам надо фазу поменять.

Цитата:

Сообщение от Clodan
о есть чтобы при закрытии сайта запись в куках исчезала и при повтором посещении сайта, информация снова появлялась.


Просто сделайте куки на время сессии и все. При следующем заходе они будут не валидные и браузер их убьет. Такие куки сделаются если в их время жизни записать пусто.

kostyanet 24.05.2015 20:53

Цитата:

Сообщение от Clodan
и через 5 секунд всплывает облако

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

Вопрос риторический - уеб-дизайнеры вообще знают как устроен интернет и сколько там сайтов и какие они? Или они только про те сайты знают, какие наваяли?

Clodan 24.05.2015 20:55

Цитата:

Сообщение от kostyanet (Сообщение 372137)
Вы верите в жизнь скрипта после смерти документа? Короче, ее там нет. Убить куки можно либо сразу, то есть бефоре унлоад, либо нельзя.

То есть юзер жмет обновить или закрыть - куки убиваются, а потом ему задают вопросы - хотите уйти?

Я не верю в работу скрипта после закрытия страницы, мне как-раз и надо убить куки при "обновить или закрыть" страницу, чтобы всплывающий блок снова отображался. Возможно я не правильно выразился, извините.

Clodan 24.05.2015 21:02

Цитата:

Сообщение от kostyanet (Сообщение 372138)
Вам надо фазу поменять.

Просто сделайте куки на время сессии и все. При следующем заходе они будут не валидные и браузер их убьет. Такие куки сделаются если в их время жизни записать пусто.

Подскажите как сделать куки с сохранением на время сессии? И еще вопрос, не будет ли в таком случае переход по внутренним страницам сайта считаться обрывом сессии? Что приведет к тому, что блок будет постоянно всплывать при переходе по страницам сайта. Если можно, укажите код, так как навыков у меня мало.

Clodan 24.05.2015 21:06

Цитата:

Сообщение от kostyanet (Сообщение 372139)
Сделайте так, чтобы оно выплывало сразу. Не надо оттягиваться на юзерах. Чел зашел, с первых секунд подумал что ему уже ничего не грозит, привык уже и вдруг хренакс какая-то хренатель вылезает, ебалайтен это все.

Вопрос риторический - уеб-дизайнеры вообще знают как устроен интернет и сколько там сайтов и какие они? Или они только про те сайты знают, какие наваяли?

Время в 5 секунд это просто тестовое решение, я делаю не для своего сайта, поэтому решающим будет слово заказчика. А насчет того, как люди относятся к всплывающим блокам, спасибо я и так знаю.

kostyanet 26.05.2015 17:25

Я же написал - надо туда пусто вписать, или 0, в expires, само собой.

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


Часовой пояс GMT +3, время: 20:52.