1. 程式人生 > >JS:區分 Chrome、Firefox、IE 瀏覽器型別和版本

JS:區分 Chrome、Firefox、IE 瀏覽器型別和版本

本文內容大多基於官方文件和網上前輩經驗總結,經過個人實踐加以整理積累,僅供參考。

JS 可以利用瀏覽器 Navigator 物件的 userAgent 屬性判斷其型別和版本

通過以下 JS 程式碼打印出瀏覽器 Navigator 物件的 userAgent 屬性,用不同瀏覽器開啟觀察結果

alert(navigator.userAgent);

Chrome 瀏覽器 Navigator 物件的 userAgent 屬性
這裡寫圖片描述

Firefox 瀏覽器 Navigator 物件的 userAgent 屬性
這裡寫圖片描述

IE 瀏覽器 Navigator 物件的 userAgent 屬性
這裡寫圖片描述

從以上結果可以看出,每個瀏覽器都有其特殊的資訊輸出

Chrome:Chrome/55.0.2883.87

Firefox:Firefox/51.0

IE:compatible; MSIE 10.0;

因此 JS 解析瀏覽器型別的指令碼如下:

if (navigator.userAgent.indexOf('Chrome') != -1) {
    alert('Chrome');
} else if (navigator.userAgent.indexOf('Firefox') != -1) {
    alert('Firefox');
} else if (navigator.userAgent.indexOf('compatible'
) != -1 && navigator.userAgent.indexOf('MSIE') != -1 && navigator.userAgent.indexOf('Opera') == -1) { alert('IE'); }

注意:判斷 IE 瀏覽器比較特殊,需要額外過濾 Opera 瀏覽器關鍵字

可以通過正則表示式進一步解析出瀏覽器的版本

var regIE = /msie [\d.]+/gi ;
var regFirefox = /firefox\/[\d.]+/gi;
var regChrome = /chrome\/[\d.]+/gi
; var userAgent = navigator.userAgent; if (userAgent.indexOf('Chrome') != -1) { alert(userAgent.match(regChrome)); } else if (userAgent.indexOf('Firefox') != -1) { alert(userAgent.match(regFirefox)); } else if (userAgent.indexOf('MSIE') != -1 && navigator.userAgent.indexOf('MSIE') != -1 && navigator.userAgent.indexOf('Opera') == -1) { alert(userAgent.match(regIE)); }

Chrome:
這裡寫圖片描述

Firefox:
這裡寫圖片描述

IE:
這裡寫圖片描述