關於ie11的瀏覽器檢測


我的電腦昨天更新的時候把ie11給更新出來了,然后發現我的skylineweb項目提示我的瀏覽器不是ie,這樣顯然是瀏覽器檢測出現了問題。查找后找到了下面的解決方法。大家的電腦如果也更新成了ie11的話,再去打開別的網上已經發布的三維項目的話,會發現無法加載。同樣是瀏覽器的檢測的問題。且看正文:

skyline平台只支持ie,這樣我們在做skyline的項目時必須在場景加載前進行瀏覽器檢測。當不是ie時,給客戶提醒“請使用ie”;當是ie時,判斷ie的版本,這樣客戶可以讓客戶按照ie的版本來安裝相應的TE Pro。

且看下面段代碼:

function CheckBrowser() {
    ua = navigator.userAgent;
    ua = ua.toLocaleLowerCase();

    if (ua.match(/msie/) != null ) {
        browserType = "IE";
        browserVersion = ua.match(/msie ([\d.]+)/)[1];
    } else if (ua.match(/firefox/) != null) {
        browserType = "火狐";
    } else if (ua.match(/opera/) != null) {
        browserType = "歐朋";
    } else if (ua.match(/chrome/) != null) {
        browserType = "谷歌";
    } else if (ua.match(/safari/) != null) {
        browserType = "Safari";
    }
    var arr = new Array(browserType, browserVersion);
    return arr;
}

  上面思路是通過瀏覽器的userAgent值來判斷(字符串),抓住各個瀏覽器userAgent值里面的不同字符串值。下面大家得學習下一篇關於ie11的介紹,我就是從那里學習,得出檢測ie11的辦法:

http://www.ithome.com/html/ie/48082.htm

我從里面摳出主要的部分:

從ie11的userAgent字符串,看出要判斷ie11,得改為對Trident值的判斷,但是獲取版本的時候又得通過“rv 11.0”來獲取。這樣想到下面的方法:

function CheckBrowser() {
    ua = navigator.userAgent;
    ua = ua.toLocaleLowerCase();

    if (ua.match(/msie/) != null || ua.match(/trident/) != null) {
        browserType = "IE";
        //哈哈,現在可以檢測ie11.0了!
        browserVersion = ua.match(/msie ([\d.]+)/) != null ? ua.match(/msie ([\d.]+)/)[1] : ua.match(/rv:([\d.]+)/)[1];
    } else if (ua.match(/firefox/) != null) {
        browserType = "火狐";
    } else if (ua.match(/opera/) != null) {
        browserType = "歐朋";
    } else if (ua.match(/chrome/) != null) {
        browserType = "谷歌";
    } else if (ua.match(/safari/) != null) {
        browserType = "Safari";
    }
    var arr = new Array(browserType, browserVersion);
    return arr;
}

  大家看,在11.0以下的版本,ie會通過ua.match(/msie ([\d.]+)/)[1]獲取版本號,當是ie11.0時,會通過 ua.match(/rv:([\d.]+)/)[1]來獲取版本號。

這樣就完成了!歡迎大家測試,給出意見@!  請大家多多關注skyline論壇:www.skylinecn.com

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM