网站介绍

这是一个根据用户设备类型提供不同访问路径的网站。当用户在移动设备上访问时,网站会自动将根路径(“/”)更改为”/m”,并保留原始的查询字符串(window.location.search)和哈希片段(window.location.hash)。这样可以确保移动设备用户能够获得适合移动设备的页面体验。

GetDeviceType()函数

GetDeviceType()函数用于检测用户的设备类型。它通过解析navigator.userAgentnavigator.appVersion来获取用户的浏览器信息,以判断是否为IE浏览器(versions小于11)。如果是IE浏览器,则返回相应的布尔值;否则返回其他设备类型的布尔值。

主要代码逻辑

if (GetDeviceType().versions.mobile == true) {  
window.location.href = window.location.pathname.replace('/', '/m') + window.location.search + window.location.hash;  
}  
  
function GetDeviceType() {  
var browser = {  
versions: function () {  
var u = navigator.userAgent, app = navigator.appVersion;  
var isIE = u.indexOf("compatible") > -1 && u.indexOf("MSIE") > -1; //判断是否IE<11浏览器  
return {  
trident: u.indexOf('Trident') > -1, //IE内核  
presto: u.indexOf('Presto') > -1, //opera内核  
edge: u.indexOf("Edge") > -1 && app.indexOf("Edge") > -1 && app.indexOf("Win") > -1, //Edge浏览器  
android: u.indexOf("Android") > -1 || u.indexOf("Adr") > -1, //Android操作系统  
iOS: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //iOS操作系统  
ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios操作系统  
weixin: u.indexOf('MicroMessenger') !== -1 //微信浏览器  
};  
}  
};  
  
return browser;  
}  

这段代码首先定义了一个名为GetDeviceType的函数,该函数返回一个包含versions属性的对象。versions属性是一个函数,用于检测用户设备的类型。在这个函数中,我们使用正则表达式匹配用户代理字符串,以确定用户的设备类型。如果用户是在移动设备上访问网站,那么网站会自动跳转到适合移动设备的页面(将根路径更改为”/m”),同时保留原始的查询字符串和哈希片段。