2014-09-11 4 views
-1

Я хочу добавить cookie на свою страницу.
Вот логика:
Когда я загружаю страницу, я хочу, чтобы она загружала всплывающее или загрузочное модальное. Но модальная загрузка только один раз, когда браузер активен. И только загрузится снова, когда вкладка браузера закрыта или выйдет из приложения браузера. Я использовал сеанс для этого, но предпочитаю использовать cookie для личных предпочтений.

Есть ли способ сделать это с помощью javascript?
Я пробовал с $ (window) .load() и $ (window) .on ('beforeunload', function());

Javascript:JQuery Cookie: один раз использовать cookie

<script type="text/javascript"> 
    $(window).load(function() { 
     if($.cookie('firstLoad') == 'unloaded' || $.cookie('firstLoad') == 'null' || $.cookie('firstLoad') == null) { 
      $('#openLoading').modal('show'); 
      var time_exp = 1; 
      $.cookie('firstLoad','loaded',{ expires: time_exp }); 
     } 
    }); 

    $(window).on('beforeunload', function(){ 
     alert($.cookie('firstLoad')); 
     $.cookie('firstLoad','unloaded'); 
    }); 
</script> 

Проблема иногда приложение браузер будет выполнять location.reload() и сбросит печенье в некотором роде и сделать всплывающее окно снова появится.
Пожалуйста, предоставьте решение, спасибо.

PS: вар time_exp и истекает: time_exp является последним средством, если выгрузить не работает

ответ

1

beforeunload событие не только огонь, когда вкладка закрывается. Он будет срабатывать, когда пользователь перейдет на новую страницу на той же вкладке, включая страницу на вашем сайте. Таким образом, вы переустанавливаете свой файл cookie каждый раз, когда пользователь перемещается между страницами.

У вас нет сообщений для обсуждения, когда выходите на сайт. Самое близкое, что вы можете сделать, это , а не, установить expires, чтобы файл cookie автоматически удалялся при выходе из браузера.

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

Смежные вопросы