素材牛VIP会员
百度和淘宝是怎样判断 页面是电脑端还是手机端打开的,并且跳转到m.baidu.com和m.taobao.com??
 陈***6  分类:Html5  人气:1507  回帖:10  发布于6年前 收藏

百度和淘宝是怎样判断 页面是电脑端还是手机端打开的,并且跳转到m.baidu.com和m.taobao.com??

 标签:html5javascript

讨论这个帖子(10)垃圾回帖将一律封号处理……

Lv3 码奴
走***一 交互设计师 6年前#1

在http请求头里面是由userAgent的。

这个是PC端

这个是用IOS模拟请求,根据你得UA判断是移动端就302跳转。

Lv6 码匠
不***) 软件测试工程师 6年前#2

1.js获取用户使用的浏览器
2.服务端拿到UA(User Agent)来判断

方法还是很多的。

Lv6 码匠
请***神 其它 6年前#3

反向代理,例如nginx上直接判断

Lv1 新人
黄***o JS工程师 6年前#4

通过js可以判断当前窗口的分辨率,进而区分是PC端还是移动端

Lv3 码奴
被***师 学生 6年前#5
function browserRedirect() {
    var sUserAgent = navigator.userAgent.toLowerCase();
    var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
    var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
    var bIsMidp = sUserAgent.match(/midp/i) == "midp";
    var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
    var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
    var bIsAndroid = sUserAgent.match(/android/i) == "android";
    var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
    var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
   
    if (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) {
       window.location.href="http://m.baidu.com";
    } else {
       window.location.href="http://www.baidu.com"; 
    }  
} 

browserRedirect();
Lv 牛魔王
素材牛 PHP开发工程师 6年前#6
window.Navigator.userAgent
Lv5 码农
Y2***Y2 JS工程师 6年前#7

webkit技术内幕这本书里有

Lv6 码匠
飞***e 产品经理 6年前#8

用户访问的http请求里面会携带访问类型,如果是pc好像是会有windows啥的,手机端会带有手机端的标识的,你可以在服务器上抓包,然后手机和电脑分别访问了看看(可以再试试在wifi情况下,还有手机热点共享情况的数据抓包)

Lv3 码奴
te***es 产品经理 6年前#9

根据http请求来判断的啊

Lv4 码徒
馒***火 JS工程师 6年前#10

前端发出的请求的http头信息包含ua,refer等诸多参数,后端判定后返回相应的页面或者redirect。

当然,肯定也会有一定的antispam策略。

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取