2013-10-08 68 views
5

我想要做的是重定向國家,根據國家代碼與下面的腳本。下面的代碼不起作用。做一些研究,我發現我必須使用一個或一個聲明,或者至少這是我認爲我需要的,但是我的問題是有一個簡單的方法,然後一個或一個聲明?正如你所看到的,我正在檢查很多國家。替代OR語句

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

var country= geoip_country_code(); 

if(country = "UK","CA","DE","DK","FR","AU","SE","CH","NL","IT","BE","AT","ES","NO","IE","FI","GB","US")  
{ 
window.location.href='http://www.google.com'; 
} 
else 
{ 
window.location.href='http://www.yahoo.com'; 
} 
</script> 
+0

@JonathonReinhart繞過服務器端也是微不足道的。 – Brad

+2

感謝您的評論,但這將足夠滿足我的需求。 – user2716614

+0

@JonathonReinhart關鍵是無論如何,安全無關緊要。通過IP地址鎖定區域不會超出普通用戶的效果。此外,他只是重定向。 @Brad Point採取了 – Brad

回答

12

你應該能夠做到這一點是這樣的:

var countryCodes = ["UK","CA","DE","DK","FR","AU","SE","CH","NL","IT","BE","AT","ES","NO","IE","FI","GB","US"]; 
var country= geoip_country_code(); 
if (countryCodes.indexOf(country) !== -1) 
{ 
    ... 
} 
+0

感謝您的回覆,我現在會嘗試一下謝謝... – user2716614

+0

@Brad好點,我應該有'!=='那裏。 –

+1

@ BenS. - 是否使用'!='或'!=='是無關緊要的,我建議'!='是首選,因爲沒有理由使用'!=='。 – RobG

0

你可以這樣做:

var country = 'US'; 
var countries = 'UK CA DE DK FR AU SE CH NL IT BE AT ES NO IE FI GB US'; 

if (countries.match(country.toUpperCase())) { 
    // matched 
} else { 
    // no match 
} 

但它極大地方便了客戶端欺騙它的起源。