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,还是要考虑用户体验问题滴