网站介绍

这是一个根据用户设备类型提供不同访问路径的网站。当用户在移动设备上访问时,网站会自动将根路径(“/”)更改为”/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”),同时保留原始的查询字符串和哈希片段。