javascript檢測瀏覽器類型和版本

來源:互聯網
上載者:User
文章目錄
  • 對象/特徵檢測法
  • user-agent字串檢測法
  • 檢測作業系統:

如果對javascript瞭解不是特別深入的話,很容易就會寫出不相容的代碼(就像我),這時候就得判斷瀏覽器了。比如事件偵聽、一些滑鼠和鍵盤事件、Range等,一些都會不一樣.下面列出幾種常用的檢測瀏覽器方法,以饗觀眾!

對象/特徵檢測法

該方法是一種判斷瀏覽器能力(而非瀏覽器的確切型號)的通用方法。大部分JS專家認為這個方法最合適,因為他們認為按照該方法所編寫的指令碼是經得起未來考驗的。

//擷取IE瀏覽器的版本號碼
//返回數值,顯示IE的主要版本號
function getIEVer() {
    var ua = navigator.userAgent; //擷取使用者端資訊
    var b = ua.indexOf("MSIE "); //檢測特殊字元串"MSIE "的位置
    if (b < 0) {
        return 0;
    }
    return parseFloat(ua.substring(b + 5, ua.indexOf(";", b))); //截取版本號碼字串,並轉換為數值
}
alert(getIEVer()); //返回數值8(我的IE8)

如果更關注瀏覽器的能力而不在乎它實際的身份,就可以使用這種方法。

user-agent字串檢測法

user-agent字串提供了關於Web瀏覽器的大量資訊,包括瀏覽器的名稱和版本。

var ua = navigator.userAgent.toLowerCase();    //擷取使用者端資訊
var info = {
    ie: /msie/.test(ua) && !/opera/.test(ua),        //匹配IE瀏覽器
    op: /opera/.test(ua),     //匹配Opera瀏覽器
    sa: /version.*safari/.test(ua),     //匹配Safari瀏覽器
    ch: /chrome/.test(ua),     //匹配Chrome瀏覽器
    ff: /gecko/.test(ua) && !/webkit/.test(ua)     //匹配Firefox瀏覽器
};
(info.ie) && alert("IE瀏覽器");
(info.op) && alert("Opera瀏覽器");
(info.sa) && alert("Safari瀏覽器");
(info.ff) && alert("Firefox瀏覽器");
(info.ch) && alert("Chrome瀏覽器");

通常我們做得最多的,就是判斷是否是IE了,其它幾種瀏覽器一般都會符合標準.有些客戶只需要符合IE和FF就已經滿足了.那麼我們可以這樣做:

var isIE = (navigator.appName == "Microsoft Internet Explorer");

判斷IE遠遠不止上面一種方法,可以使用IE更多特有的東西,如:window.ActiveXObject,document.all等,這些都屬於對象/特徵檢測法了!通常要在不同的瀏覽器上寫不同的樣式(因為IE樣式解析也各有不同),那就得判斷版本了.可以這樣做

//擷取IE瀏覽器的版本號碼
//返回數值,顯示IE的主要版本號
function getIEVer() {
    var ua = navigator.userAgent; //擷取使用者端資訊
    var b = ua.indexOf("MSIE "); //檢測特殊字元串"MSIE "的位置
    if (b < 0) {
        return 0;
    }
    return parseFloat(ua.substring(b + 5, ua.indexOf(";", b))); //截取版本號碼字串,並轉換為數值
}
alert(getIEVer()); //返回數值7
檢測作業系統:
var isWin = (navigator.userAgent.indexOf("Win") != -1); //如果是Windows系統,則返回true
var isMac = (navigator.userAgent.indexOf("Mac") != -1);     //如果是Macintosh系統,則返回true
var isUnix = (navigator.userAgent.indexOf("X11") != -1);     //如果是Unix系統,則返回true
var isLinux = (navigator.userAgent.indexOf("Linux") != -1);     //如果是Linux系統,則返回true
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.