2013-07-05 5 views
0

쿠키 코드가 작동하지 않습니다. 문제가 무엇인지 알 수 없습니다.이 코드는 다른 스크립트에서 작동하지만 작동하지 않습니다.쿠키 스크립트가 작동하지 않습니다.

function get_cookie(Name) { 
    var search = Name + "="; 
    if (document.cookie.length > 0) { 
     offset = document.cookie.indexOf(search) 

     // cookie exist, update expiry date of the same cookie 
     if (offset != -1) { 
      cookie_info = document.cookie.split('='); 
      cookie_info = cookie_info[0]+"=" + cookie_info[1]; 

      // add 30 days expiry 
      var date = new Date(); 
      date.setTime(date.getTime()+(30*24*60*60*1000)); 
      var expires = "; expires="+date.toGMTString(); 

      cookie_info += expires + ";path=/"; 

      document.cookie = cookie_info; 
     } 
    }} 

function loadCokie() { 
    if (get_cookie('popup')=='') { 
     alert("hello"); 
     document.cookie="popup=yes" 
    } 
} 

THnx 사전에

+0

작동하지 않는 기능은 무엇입니까? 이것을 시도하는 동안 오류가 발생합니까? – putvande

+0

코드에 몇 가지 문제가 있습니다. 첫째,'if (offset! = -1)'은'if (offset! == -1)'이어야합니다. 둘째, 여러 쿠키를 고려하지 않습니다. 만약 하나 이상의 쿠키가 있다면,'document.cookie'는'popup = bob; cookie2 = bill;'이므로, 존재의 존재를 검사 할 필요가 있습니다. '그리고 거기서 먼저 나눕니다. 그리고 나서 당신이 원하는 이름으로 하나를 얻고 그 다음에'= '로 나누십시오. – SpYk3HH

+0

콘솔에는 오류가 나타나지 않지만 경고는 열리지 않습니다. –

답변

1

그냥 제안,하지만 당신은 다만 수 :

CODE

if (! localStorage.getItem('visited')) { 
    localStorage.setItem('visited', true); 
    alert('Hello, new visitor !'); 
} 

을 당신은 오래된 브라우저를 지원해야 할 경우, 추가 것 자동으로 쿠키로 돌아 오는 MDN의 폴리올입니다.

편집 : 원래 코드로

, 당신은 함수를 실행하지, 그리고 쿠키가 존재하지 않는 경우 논리가 결함이 때문에, 그것은, 빈 문자열을 반환 실 거예요, 나는 변경 약간 :

function get_cookie(c_name) { 
    var c_value = document.cookie; 
    var c_start = c_value.indexOf(" " + c_name + "="); 
    if (c_start == -1) { 
    c_start = c_value.indexOf(c_name + "="); 
    } 
    if (c_start == -1) { 
    c_value = null; 
    }else{ 
    c_start = c_value.indexOf("=", c_start) + 1; 
    var c_end = c_value.indexOf(";", c_start); 
    if (c_end == -1) { 
     c_end = c_value.length; 
    } 
    c_value = unescape(c_value.substring(c_start,c_end)); 
    } 
    return c_value; 
} 

function set_cookie(c_name,value,exdays) { 
    var exdate=new Date(); 
    exdate.setDate(exdate.getDate() + exdays); 
    var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString()); 
    document.cookie=c_name + "=" + c_value; 
} 

function loadCokie() { 
    if (! get_cookie('popup')) { 
    alert("hello"); 
    set_cookie('popup', 'yes', 30); 
    } 
} 

loadCokie(); 
+0

thnxx ..its 작동하고 exit 할 때 팝업을 열 수있는 방법은 무엇입니까? 'onUnload'는 괜찮습니까? –

+0

안녕하세요. 어떻게하면 창이 닫힌 상태에서 팝업을 열 수 있습니까? 아무 것도 작동하지 않았습니다. 'window.onbeforeunload = function() { loadSound(); } ' –

+0

당신이 할 수있는 일은 사용자 정의 메시지로 표준 확인 상자를 여는 것뿐입니다. 브라우저 나 다른 맞춤 팝업 창을 표시하는 동안 브라우저가 방해를받을 수 있으므로 성가 시게 작동하지 않습니다. – adeneo

관련 문제