1、问题:

用户使用手机移动设备访问127.0.0.1/yemian,自动识别到手机端并且跳转至127.0.0.1/m/yemian

2、小二,上代码:

//判断是否是移动设备
var ua = navigator.userAgent;
var UA = {
Android:function () { //安卓
return ua.match(/Android/i)?true:false;
},
BlackBerry:function() { //黑莓
return ua.match(/BlackBerry/i)?true:false;
},
IOS:function(){ //IOS
return ua.match(/iPhone|iPad|iPod/i)?true:false;
},
//这个其实没啥必要了,可以不用判断这个,毕竟IE是一种古老的东西
Windows:function() {
return ua.match(/IEMobile/i)?true:false;
},
isMobile:function() { //移动设备
return UA.Android()||UA.BlackBerry()||UA.IOS()||UA.Windows();
}
}
if(US.isMobile()){
//正则匹配第一个/,进行重定向
location.replace(location.href.replace(/\//,"/m/"));
}

3、小二,这里为什么不使用location.href进行跳转?

location.replace 不会保存跳转前的URL地址,也就是不会把url放在history里,所以按返回之后会无效

使用区别:当要模拟按钮点击跳转链接,使用location.href

如果只是单纯进行http重定向,那就是用location.replace,作为csser,还是要考虑用户体验问题滴

转载请注明:http://www.cnblogs.com/zhangmingze/p/5247296.html

JS判断是否是移动设备进行http链接重定向的更多相关文章

  1. js判断用户的浏览器设备是移动端还是pc端

    最近做的一个网站页面中需要根据用户的访问设备的不同来显示不同的页面样式,主要是判断移动设备还是电脑浏览器访问的. 下面给出js判断处理代码,以作参考. <script type="te ...

  2. [开发笔记]-js判断用户的浏览设备是移动设备还是PC

    最近做的一个网站页面中需要根据用户的访问设备的不同来显示不同的页面样式,主要是判断移动设备还是电脑浏览器访问的. 下面给出js判断处理代码,以作参考. <script type="te ...

  3. 用js判断浏览器类型及设备

    <!DOCTYPE html> <html> <head> <title>JS判断是什么设备是什么浏览器</title> <meta ...

  4. JS判断移动端访问设备并加载对应CSS样式

    JS判断不同web访问环境,主要针对移动设备,提供相对应的解析方案(判断设备代码直接copy腾讯网的) // 判断是否为移动端运行环境 if(/AppleWebKit.*Mobile/i.test(n ...

  5. (转)[开发笔记]-js判断用户的浏览设备是移动设备还是PC

    <script type="text/javascript"> function browserRedirect() { var sUserAgent = naviga ...

  6. js判断用户的浏览设备是移动设备还是PC

    <script type="text/javascript"> function browserRedirect() { var sUserAgent = naviga ...

  7. js判断是否是移动设备登陆网页

    var browser = {            versions: function () {                var u = navigator.userAgent, app = ...

  8. js判断访问的当前设备是手机还是电脑

    function browserRedirect() { var sUserAgent = navigator.userAgent.toLowerCase(); var bIsIpad = sUser ...

  9. js判断当前页面在移动设备还是在PC端中打开

    方法一: var isPC = function () { var userAgentInfo = navigator.userAgent.toLowerCase(); var Agents = ne ...

随机推荐

  1. MySQL 5.6 root密码丢失

     windows下mysql密码忘记了 第一步:netstat -nat(可以查看mysql是否启动了,如果启动了,可以用输入net stop mysql(或者通过任务管理器结束进程)) 第二步:my ...

  2. Linux 命令备注

    linux 命令常用备注. 查看某文件大小,du -sk filename; 查看详细信息 ls -l; 查看系统分区 df -h; 查看系统信息 uname -a; 查看系统名称 hostname; ...

  3. IIS支持net.tcp

    绑定 高级设置  http和net.tcp用逗号分隔 //擦擦擦,见鬼了,下面的是tcp.net导致我找了好久,都找不出这个错误 //一定要注意,不要写错了. 否则会收到提示:找不到具有绑定 NetT ...

  4. VirtualBox设置共享文件夹和镜像访问的方法

    VirtualBox设置共享文件夹和镜像访问的方法 virtualBox是一款虚拟机软件,可以在该软件上安装各类的操作系统,至于如何安装请参见另外一篇经验<如何使用VirtualBox安装win ...

  5. POJ_1742_Coins_(动态规划,多重部分和)

    描述 http://poj.org/problem?id=1742 n种不同面额的硬币 ai ,每种各 mi 个,判断可以从这些数字值中选出若干使它们组成的面额恰好为 k 的 k 的个数. 原型: n ...

  6. 全面理解Unity加载和内存管理

     全面理解Unity加载和内存管理http://game.ceeger.com/forum/read.php?tid=4394&fid=2&uid=6507 1.用简单的“for”循环 ...

  7. 剪花布条 --HDOJ 2087

    剪花布条 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  8. Cocos2d-x java 通过jni调用c++的方法

    前面博客说到,cocos2d-x c++界面层运行在一个GLThread线程里面,严格的说是运行在Cocos2dxGLSurfaceView(继承自GLSurfaceView) 里面.opengl的渲 ...

  9. JavaScript---网络编程(6)-Dom和Bom模型概念讲解(节点获取,window对象)

    本节讲Dom和Bom模型概念讲解(节点获取,window对象). out.js: 写了2个输出到页面的函数. function println(param){ document.write(param ...

  10. AsyncSocket的使用

    AsyncSocket使用流程 安装AsyncSocket 拷贝AsyncSocket类到项目 使用AsyncSocket set delegate @interface NetWork : NSOb ...