2012-06-08 80 views
0

當人們輸入我的URL時,我希望他們點擊北卡羅萊納州或弗吉尼亞州。點擊後,它會將它們重定向到www.myurl.com/nc或www.myurl.com/va。他們回答這個問題後,他們下次訪問我的網站時,它會將它們重定向到適當的頁面,而無需再次點擊NC或VA。我的鏈接正在工作(帶我到正確的頁面),但是當我返回時,cookie不會重定向我,我要返回到我要求選擇狀態的頁面。這是迄今爲止我所擁有的。我覺得我很接近,但我真的不知道我在做什麼。當我重新訪問頁面時,我的cookie不工作

<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

您使用的是JavaScript調試工具,如螢火蟲或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

謝謝 - 只要將我重定向到正確的頁面就行。但是,當我重新訪問該頁面時,它不會將我重定向到正確的頁面 - 我必須再次選擇狀態。我希望cookie設置爲記住,並且我不必每次都點擊狀態(類似craigslist)。 – dkype

+0

@dkype - 我更新了代碼 – PitaJ

+0

感謝您的幫助。它在firefox中工作正常,但在ie中,它甚至在我有機會點擊之前重定向到VA。此外,當我重新訪問該頁面時,它會簡要顯示帶有NC和VA選項的頁面,然後重定向。有沒有辦法讓它重定向,所以它不顯示該啓動頁面?你一直在幫助很大。非常感謝。 – dkype

相關問題