2016-05-21 6 views
0

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

$(function() { 
    var overlay = $('<div id="overlay"></div>'); 
    overlay.show(); 
    overlay.appendTo(document.body); 
    $(document).ready(function() { 


     $('.popup').show(); 

     $('.close').click(function(){ 
      $('.popup').hide(); 
      overlay.appendTo(document.body).remove(); 
      return false; 
     }); 
     }); 

ответ

2

Использование window.localStorage API является довольно простым способом сделать это:

$(function() { 
    if (window.localStorage.popupHasBeenShown) 
     return; 

    var overlay = $('<div id="overlay"></div>'); 
    overlay.show(); 
    overlay.appendTo(document.body); 
    $(document).ready(function() { 

     window.localStorage.popupHasBeenShown = true; 
     $('.popup').show(); 

     $('.close').click(function(){ 
      $('.popup').hide(); 
      overlay.appendTo(document.body).remove(); 
      return false; 
     }); 
    }); 

Некоторые люди предпочитают использовать cookie API, т.е. window.document.cookie, преимущество будучи, что установка даты истечения срока действия очень простое, так что вы могли бы, скажем, есть всплывающее окно появляется только ОНК e в неделю или около того:

document.cookie = "doSomethingOnlyOnce=true; expires=Fri, 31 Dec 9999 23:59:59 GMT"; 
+0

Спасибо! Это сработало! –

+0

Hehe no prob! Примите ответ, если это помогло вам показать :-) –

+0

В этом случае всплывающее окно не будет отображаться пользователю, даже если всплывающее окно открылось однажды. Что делать, если мне нужно установить временные рамки, после которых всплывающее окно будет снова показано @nikk wong –

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