2012-06-08 2 views
0

사람들이 내 URL을 입력 할 때 노스 캐롤라이나 또는 버지니아를 클릭하길 원합니다. 클릭 후 www.myurl.com/nc 또는 www.myurl.com/va로 리디렉션됩니다. 그들이 그 질문에 답한 후에는 다음에 내 사이트를 방문 할 때 NC 또는 VA를 다시 클릭하지 않고 해당 페이지로 리디렉션합니다. 내 링크가 작동하고 있습니다 (올바른 페이지로 이동).하지만 돌아 왔을 때 쿠키가 나를 리디렉션하지 않고 상태를 선택하라는 동일한 페이지로 돌아갑니다. 여기에 내가 지금까지 가지고있는 것이있다. 나는 가깝다고 느낀다. 그러나 나는 솔직히 내가하고있는 것을 단서가 없다.페이지를 다시 방문하면 내 쿠키가 작동하지 않습니다.

<p> Please tell us where you live so we can give you information for your location. </p> 
<a href="#" onClick="window.location = 'http://www.myurl.com/nc'" value="nc">North Carolina</a><br /> 
<br /> 
<a href="#" onClick="window.location = 'http://www.myurl.com/va'" value="va">Virginia</a> 
<script type="text/javascript" src="script.js"></script> 
<script type="text/javascript"> 
function redirect(state) {  createCookie('state', state, 90);  window.location.href = "http://www.myurl.com/" + nc; } 
</script> 

나는 또한 별도의 파일에서이 스크립트가 있습니다

// JavaScript Document 
function createCookie(name,value,days) { 
    if (days) { 
     var date = new Date(); 
     date.setTime(date.getTime()+(days*24*60*60*1000)); 
     var expires = "; expires="+date.toGMTString(); 
    } 
    else var expires = ""; 
    document.cookie = name+"="+value+expires+"; path=/"; 
} 

function readCookie(name) { 
    var nameEQ = name + "="; 
    var ca = document.cookie.split(';'); 
    for(var i=0;i < ca.length;i++) { 
     var c = ca[i]; 
     while (c.charAt(0)==' ') c = c.substring(1,c.length); 
     if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 
    } 
    return null; 
} 

function eraseCookie(name) { 
    createCookie(name,"",-1); 
} 
+0

당신이 방화범이 끌려와 같은 자바 스크립트 디버깅 도구를 사용하고 또는 Chrome에 내장 된 도구는 무엇입니까? –

+0

어디서든'redirect() '를 호출하는 것을 보지 못했습니다 ... –

+0

어디서 리디렉션을 요청합니까? 내 별도의 스크립트 파일에? – dkype

답변

0

을보십시오이 :

<p> Please tell us where you live so we can give you information for your location. </p> 
<a href="#" onClick="redirect('nc');return false" >North Carolina</a><br /> 
<br /> 
<a href="#" onClick="redirect('va');return false" >Virginia</a> 
<script type="text/javascript" src="script.js"></script> 
<script type="text/javascript"> 
function redirect(state) { 
    createCookie('state', state, 90); 
    window.location.href = "http://www.myurl.com/" + state; 
} 
var cookie = readCookie('state'); 
if (cookie != null) { 
    window.location.href = "http://www.myurl.com/" + cookie; 
} 
</script> 

jsfiddle : http://jsfiddle.net/7j8pG/1/

+0

고마워요. - 정확한 페이지로 리다이렉트하는 것까지 작동합니다. 그러나 페이지를 다시 방문하면 올바른 페이지로 리디렉션되지 않습니다. 다시 상태를 선택해야합니다. 쿠키가 기억되도록 쿠키를 설정하고 매번 상태를 클릭하지 않아도됩니다 (craigslist와 같은 종류). – dkype

+0

@dkype - 코드를 업데이트했습니다. – PitaJ

+0

모든 도움을 주셔서 감사합니다. 그것은 파이어 폭스에서 잘 작동하지만, 즉, VA로 리다이렉트하기 전에 나는 심지어 기회를 클릭하십시오. 또한 페이지를 다시 방문하면 NC 및 VA 옵션이있는 페이지가 간략하게 표시 된 다음 리디렉션됩니다. 리디렉션 할 수있는 방법이있어서 스플래시 페이지가 표시되지 않습니까? 너는 큰 도움이되었다. 정말 고마워. – dkype

관련 문제