4 回答

TA貢獻(xiàn)1844條經(jīng)驗(yàn) 獲得超8個(gè)贊
只能用UA,同時(shí)瀏覽器的版本信息允許被修改,可欺騙性比較強(qiáng)。
這是我常用的獲取瀏覽器信息的代碼,你可以參考一下:
navigator.sayswho= (function(){
var ua= navigator.userAgent, tem,
M= ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
if(/trident/i.test(M[1])){
tem= /\brv[ :]+(\d+)/g.exec(ua) || [];
return 'IE '+(tem[1] || '');
}
if(M[1]=== 'Chrome'){
tem= ua.match(/\b(OPR|Edge)\/(\d+)/);
if(tem!= null) return tem.slice(1).join(' ').replace('OPR', 'Opera');
}
M= M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];
if((tem= ua.match(/version\/(\d+)/i))!= null) M.splice(1, 1, tem[1]);
return M.join(' ');
})();
console.log(navigator.sayswho);

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
根據(jù)UA來判斷瀏覽器,只能接受UA會(huì)被修改的情況,這是沒有辦法改變的。
不過,某些情況下可以確定瀏覽器版本區(qū)間,比如IE5和IE6是沒有XMLHttpRequest對(duì)象的,檢測(cè)用戶瀏覽器是否版本大于IE6可以使用if(window.XMLHttpRequest)語句進(jìn)行判斷。
我想,就算能修改IE的UA,也沒辦法憑空造一個(gè)不存在的XMLHttpRequest對(duì)象來吧。
添加回答
舉報(bào)