Write a piece of code to judge the mobile terminal and jump, but it will not be executed on the mobile terminals of uc, qq, and Sogou, but it can be executed on the mobile browsers of chrome, Xiaomi, and WeChat
var browser = {
versions: function () {
var u = navigator.userAgent, app = navigator.appVersion;
return {
trident: u.indexOf('Trident') > -1, //IE內(nèi)核
presto: u.indexOf('Presto') > -1, //opera內(nèi)核
webKit: u.indexOf('AppleWebKit') > -1, //蘋果、谷歌內(nèi)核
gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1,//火狐內(nèi)核
mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否為移動(dòng)終端
ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios終端
android: u.indexOf('Android') > -1 || u.indexOf('Adr') > -1, //android終端
iPhone: u.indexOf('iPhone') > -1, //是否為iPhone或者QQHD瀏覽器
iPad: u.indexOf('iPad') > -1, //是否iPad
webApp: u.indexOf('Safari') == -1, //是否web應(yīng)該程序,沒有頭部與底部
weixin: u.indexOf('MicroMessenger') > -1, //是否微信 (2015-01-22新增)
qq: u.match(/\sQQ/i) == " qq" //是否QQ
};
}(),
};
if (browser.versions.android || browser.versions.ios || browser.versions.mobile || browser.versions.iPhone||browser.versions.webApp||browser.versions.weixin||browser.versions.qq) {
window.location = 'mobileWeb.html'
}
"SE" judges Sogou, "UBrowser" judges UC, you need to add two, modify "QQBrowser" to judge QQ, and then give it a try
Finally I found out that it turned out to be a sentence of es6 syntax, which was not supported by uc, sogou, and qq browsers, resulting in the error code not being executed. . . After downloading a vConsole debugging tool, the error was displayed on the mobile terminal.
Zhengze can’t match up to Sa. Print out ua and see for yourself where there are no matches. Doesn’t the mobile ua have a simpler mobile keyword? Is it so complicated?