实现这个功能的js怎样写?

英文网站是 www.abc.com 中文网站是cn.abc.com ,在www的网页里面加了如下的代码判断ip自动跳转。现在想实现这样的功能(网站头部有中英|文标示),判断ip自动跳转,但是用户能够自己选择语言,比如中国的用户访问 www.abc.com 会自动跳转到 cn.abc.com ,但当用户点击选择英文时,会停留在英文网页,不会强制跳转。请问这样的JS怎么写?求个详细的代码,谢谢!

<script src="http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&quot; charset="GB2312" ></script>
<script type=text/javascript>
if(remote_ip_info.country =='中国'){
window.location.href="http://cn.abc.com";
}else{
window.location.href="http://www.abc.com";
}
</script>

阅读 3.5k
3 个回答

if(remote_ip_info.country =='中国'&&user_select_english==""){
window.location.href="http://cn.abc.com";
}else{
window.location.href="http://www.abc.com"

当用户选择英文版
设定cookie: 名:user_select_english;值:true
setcookie("user_select_english","true")

前端跳转不仅带宽和服务器资源,还严重影响用户体验,应该让服务器返回 302 进行跳转

其实你如果要给用户跳转到不同的语言站点的话,你没必要通过IP归属地去判断,你直接用“navigator.language”也就是浏览器语言判断。

var chinaUrl = 'http://www.abc.com';
var globalURl = 'http://global.abc.com';
var isGlobalUser = !(/^zh/.test(navigator.language));
var curIsGlobal = (location.protocol+'//'+location.host)===globalURl;
var cookieLocation = $.cookie('force_location');
//先判断用户有没有指定地区
if(cookieLocation=='china'){
    curIsGlobal && (windows.location = chinaUrl);
}else if(cookieLocation=='global'){
    curIsGlobal || (windows.location = globalURl);
}else if(isGlobalUser && !curIsGlobal){
    windows.location = globalURl;
}else if(!isGlobalUser && curIsGlobal){
    windows.location = chinaUrl;
}

然后,你在用户强制指定地区的时候,设置一下force_location,china为国内,global为全球站就行了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题