前端通过JS获取用户位置信息然后跳转不同的子域名
本期主要内容:根据用户的位置信息跳转不同的网站,比如:北京用户访问跳转 beijing.a.com 上海用户访问跳转 shanghai.a.com,具体演示案例可以参考:www.12315.team
一、首先要获取用户的位置信息:
通过js:https://ip.ws.126.net/ipquery 来获取位置信息
lo 代表当前省份 ,例:山东省
lc 代表当前城市 ,例:济南市
声明:本文沫娱网-天沫原创!转载请注明出处!
二、有了用户的中文位置信息后,我们需要将中文位置信息转换成英文:
pinyin.getFullChars(lc).toLowerCase();
pinyin.getFullChars() 这个是我一个单独封装的方法,项目源码:https://cdnbaidu.tmicloud.com/jquery/Convert_Pinyin.js 把这个js下载下来放到你网站的公共头部就可以了其他的不用改
lc 代表用户当前城市, 这个时候 返回的是城市的拼音,例:jinanshi
如果你想用用户的省份的话就改成 lo,例:pinyin.getFullChars(lo).toLowerCase(); 这时候返回的是:shandongsheng
声明:本文沫娱网-天沫原创!转载请注明出处!
三、先将上面的拼音放到一个变量里面存起来,有了拼音之后就可以直接设置跳转了:
var lcpinyin = pinyin.getFullChars(lc).toLowerCase(); //这时候 lc的值是:jinanshi //假如你的主域名是:www.a.com 要把济南市用户访问就跳转 jinanshi.a.com window.location.href="http://" + lcpinyin + ".a.com"; //常用的js字符串拼接
声明:本文沫娱网-天沫原创!转载请注明出处!
四、到这里就可以实现基本跳转功能了,因为有些IP无法返回正确的用户位置(大多数是手机用户,宽带用户的准确率 95%),所以要先判断返回的数据是否为空:
if(lc != ''){ //如果正确返回用户位置执行这里的代码,例:济南市 var lcpinyin = pinyin.getFullChars(lc).toLowerCase(); window.location.href="http://" + lcpinyin + ".a.com"; }else{ //如果没有返回用户的信息执行代这里的代码,建议不作任何操作 }
文沫娱网-天沫原创!转载请注明出处!
五、完整demo:
<script src='http://ip.ws.126.net/ipquery'></script> <script src='http://cdnbaidu.tmicloud.com/jquery/Convert_Pinyin.js'></script> //这是我自己用的,需要把这个里面的源码下载下来放到自己的项目里就可以了 <script> if(lc != ''){ //如果正确返回用户位置执行这里的代码,例:济南市 var lcpinyin = pinyin.getFullChars(lc).toLowerCase(); window.location.href="http://" + lcpinyin + ".a.com"; }else{ //如果没有返回用户的信息执行代这里的代码,建议不作任何操作 } </script>
把上面的代码放在网站头部就可以了,正文到此结束。。。
版权声明:本文由 LzxBlog 发布,如需转载请注明出处。