2014-02-07 2 views
3

jquery UI 모달 대화 상자를 첫 페이지에서 사용하고 있으며 사용자 당 하나만 표시하고 싶습니다. 내 코드 :Jquery 대화 상자는 사용자 당 한 번만 열어야합니다.

<script> 
    $(function() { 
    $("#dialog-message").dialog({ 
     modal: true, 
     resizable: false, 
     show: 'slide', 
     buttons: { 
     Ok: function() { 
      $(this).dialog("close"); 
     } 
     } 
    }); 
    }); 


    </script> 



<div id="dialog-message" title="Attention"> 
    <p>Sample text here!</p> 
</div> 

어떤 도움을 많이 받으실 수 있습니다! 감사합니다.

+0

는 '사용자'정의? 세션 당 한 번, 페이지 방문 당 한 번, IP 당 한 번, 로그인 자격 증명 당 한 번? – gpgekko

+0

죄송합니다. 한 번만 페이지를 방문하면 죄송합니다. @gpgekko – zen

+0

모달 설정 코드는 페이지로드시 한 번만 실행되므로 한번만 열립니다. 그래서 그것은 그것이 이미 당신이 원하는 것을하고 있다는 것을 의미합니다. – gpgekko

답변

8

하나 cookies (앞에서 언급 한 것과 같음) 또는 localStorage API (지원해야하는 브라우저에 따라 다름)을 사용하십시오. 쿠키와

하는 방법입니다 :

$(function() { 
    if(document.cookie.indexOf("runOnce") < 0) { 
     $("#dialog-message").dialog({ 
      modal: true, 
      resizable: false, 
      show: 'slide', 
      buttons: { 
       Ok: function() { 
        $(this).dialog("close"); 
        document.cookie = "runOnce=true; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=/"; 
       } 
      } 
     }); 
    } 
}); 

로컬 스토리지가있는 방법 :

$(function() { 
    if(! localStorage.getItem("runOnce")) { 
     $("#dialog-message").dialog({ 
      modal: true, 
      resizable: false, 
      show: 'slide', 
      buttons: { 
       Ok: function() { 
        $(this).dialog("close"); 
        localStorage.setItem("runOnce", true); 
       } 
      } 
     }); 
    } 
}); 
+0

감사합니다. 당신은 @ gpgekko, 나는 쿠키에 대한 귀하의 첫 번째 제안을 시도하고 그것은 매력처럼 작동합니다! localStorage는 다른 브라우저와 호환성 문제가 있기 때문에 쿠키를 사용하는 것이 좋습니다. 남성 들아! – zen

+0

, @ gpgekko, 쿠키를 사용하는 위의 방법은 Chrome에서 작동하지만 최근에는 Mozilla 및 IE에서 작동하지 않습니다. 다른 브라우저에서 어떻게 작동합니까? – zen

+0

@zen 모든 브라우저에서 작동합니다. http://jsfiddle.net/tDud8/7/ – gpgekko

1

사용자가 특정 페이지를 방문했는지 여부를 확인해야합니다. 세션 변수 또는 쿠키에 상태를 유지할 수 있습니다. 값에 따라 대화 상자를 표시 할 수 있습니다.

예를 사용하여 쿠키 : 당신은 세 번째 매개 변수로 쿠키 만료 기간을 설정할 수 있습니다 귀하의 작업을

$(document).ready(function() 
{ 
$(function() { 
     if ($.cookie('page_visited') != 'yes') 
     { 
      $("#dialog-message").dialog({ 
       modal: true, 
       resizable: false, 
       show: 'slide', 
       buttons: { 
       Ok: function() { 
        $(this).dialog("close"); 
       } 
       } 
      }); 
      $.cookie('page_visited','yes') 
     } 
}); 
});     

을 할 것입니다 코드를 다음 https://code.google.com/p/cookies/downloads/list

즉, HTML 파일에서 JQuery와 쿠키를 포함 $.cookie('page_visited','yes', expiration_date)

+0

어떻게해야할지 모르겠다. 나를 도와 줄 수 있니? 나는 이런 것들을 처음 접했어. – zen

+0

응답 해 주셔서 감사합니다. – zen

+0

안녕하세요, 위의 코드가 작동하지 않는 것,이 경로로 js 파일을 업로드하려고 : zen

관련 문제