2010-01-26 64 views
1

我有兩個腳本可以做我想做的事,但我需要將它們組合起來。基本上,如果有「美國」的cookie,那麼它讓用戶瀏覽美國網站。但是,如果不存在cookie,那麼我希望它能夠根據位置運行地理位置重定向。他們都在自己的工作,但我不能爲我的生活得到它首先做的cookie部分,然後如果沒有cookie存在運行地理重定向。任何幫助將是巨大的。謝謝。Javascript Cookie和重定向問題

這裏是我的2個獨立的腳本:

<script language="JavaScript" src="http://j.maxmind.com/app/geoip.js"></script> 

<script language="Javascript" type="text/javascript"> 
<!-- 
function ReadCookie() { 
var NameOfCookie="Language"; 
if(document.cookie.length > 0) 
{ 
begin = document.cookie.indexOf(NameOfCookie+"="); 
if(begin != -1) 
{ 
// our cookie was set. 
// The value stored in the cookie is returned from the function 
begin += NameOfCookie.length + 1; 
end = document.cookie.indexOf(";",begin); 
if(end == -1) end = document.cookie.length; 
language=(document.cookie.substring(begin,end)); 
if (language==="US")document.location.href='http://www.site.com'; 
} 
} 
} 
function SetCookie(cookieName,cookieValue) { 
var today = new Date(); 
var expire = new Date(); 
var nDays=365 
expire.setTime(today.getTime() + 3600000*24*nDays); 
document.cookie = cookieName+"="+escape(cookieValue) 
+ ";expires="+expire.toGMTString(); 
} 
//--> 
</script> 

<script language="Javascript" type="text/javascript"> 
function GetGeo() { 
var country = geoip_country_code(); 
if(country=="GB")  
{ 
window.location = "http://uk.site.com" 
} 
else if(country=="FR")  
{ 
window.location = "http://fr.site.com" 
} 
} 
</script> 

話,我的身體的onload = ReadCookie()

+0

你在觀察什麼? – 2010-01-26 20:08:16

回答

1

這裏有一個更簡單的方法,讓您的cookie值:

var language = document.cookie.replace(/.*\bLanguage=(\w+)\b.*/, "$1"); 
if (language == "US") document.location = whatever; 

在哪裏/你什麼時候實際調用「GetGeo」函數?

+1

甚至:'if(/\bLanguage=US\b/.test(document.cookie))...' – 2010-01-26 20:16:07

+0

我不認爲我在調用GetGeo函數。如果我在body = onload中調用它,它會自行工作,但我希望在cookie爲空的情況下將它組合到函數ReadCookie中。因爲我需要腳本來讀取cookie,如果存在美國cookie,那麼請執行該操作,但是如果不存在cookie,我希望它運行GetGeo函數 - 有意義嗎? – Chase 2010-01-26 21:01:34