var browser ={
versions: function() {
var u = navigator.userAgent,
var ua = navigator.userAgent.toLocaleLowerCase();
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.*/), /*是否為移動終端*/
ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), /*ios終端*/
android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, /*android終端或者uc瀏覽器*/
iPhone: u.indexOf('iPhone') > -1, /*是否為iPhone或者QQHD瀏覽器*/
iPad: u.indexOf('iPad') > -1, /*是否iPad*/
webApp: u.indexOf('Safari') == -1, /*是否web應(yīng)該程序儿礼,沒有頭部與底部*/
souyue: u.indexOf('souyue') > -1,
superapp: u.indexOf('superapp') > -1,
weixin:u.toLowerCase().indexOf('micromessenger') > -1,
qq: ua.match(/QQ/i) == "qq", // QQ
weiBo: ua.match(/WeiBo/i) == "weibo", // 微博
Safari:u.indexOf('Safari') > -1,
QQbrw: u.indexOf('mqqbrowser') > -1, // QQ瀏覽器
webview: !(u.match(/Chrome\/([\d.]+)/) || u.match(/CriOS\/([\d.]+)/)) && u.match(/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/),
ucweb: function () {
try {
return parseFloat(u.match(/ucweb\d+\.\d+/gi).toString().match(/\d+\.\d+/).toString()) >= 8.2
} catch (e) {
if (u.indexOf('UC') > -1) {
return true;
}
return false;
}
}(),
Symbian: u.indexOf('Symbian') > -1,
ucSB: u.indexOf('Firofox/1.') > -1
};
}(),
language: (navigator.browserLanguage || navigator.language).toLowerCase()
};
判斷是在qq內(nèi)置瀏覽器還是qq瀏覽器
browser.versions.qq && !browser.versions.QQbrw
轉(zhuǎn)載于:https://www.cnblogs.com/ryze/p/ryze13.html
但是原文在對qq瀏覽器做判斷是匹配的是大寫字符串MQQBrowser
咖杂,我測試時發(fā)現(xiàn)行不通,然后改成小寫的mqqbrowser
就沒問題了蚊夫∷咦郑或者創(chuàng)建versions
對象時候QQbrw
項的匹配用ua去判斷也行,前面ua = navigator.userAgent.toLocaleLowerCase()
已經(jīng)轉(zhuǎn)換成小寫了
QQbrw: ua.indexOf('mqqbrowser') > -1