Javascript 替代或陈述
我试图做的是重定向国家,基于国家代码和下面的脚本。下面的代码不起作用。在做一些研究时,我发现我必须使用or语句,或者至少我认为我需要使用or语句,但我的问题是,有没有比or语句更简单的方法?正如你所看到的,我正在检查很多国家Javascript 替代或陈述,javascript,Javascript,我试图做的是重定向国家,基于国家代码和下面的脚本。下面的代码不起作用。在做一些研究时,我发现我必须使用or语句,或者至少我认为我需要使用or语句,但我的问题是,有没有比or语句更简单的方法?正如你所看到的,我正在检查很多国家 <script language="JavaScript" src="http://j.maxmind.com/app/geoip.js"></script> <script language="JavaScript"> var cou
<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>
var country=geoip_country_code();
如果(国家=“英国”、“加拿大”、“德国”、“丹麦”、“法国”、“澳大利亚”、“东南”、“中国”、“荷兰”、“IT”、“BE”、“AT”、“ES”、“否”、“IE”、“FI”、“GB”、“美国”)
{
window.location.href=http://www.google.com';
}
其他的
{
window.location.href=http://www.yahoo.com';
}
您应该能够这样做:
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)
{
...
}
您可以执行以下操作:
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
}
但是客户端很容易伪造其来源。@JonathonReinhart绕过服务器端也很简单。谢谢你的评论,但这足以满足我的需要。@JonathonReinhart重点是安全性在这里无论如何都不重要。通过IP地址进行的区域锁定的有效性不超过普通用户。“此外,他只是在改变方向。”布拉德·波因特说。不过我还是会在服务器端完成。@BenS.-which
=代码>或==如果使用的是无关的,我建议使用=代码>是首选,因为没有理由使用==
@RobG我知道-我只是说使用通常是一个好习惯==除非你有特定的理由不这样做,因为在大多数情况下,这可能就是你的意思。