2013-12-12 270 views
0

什麼版本的瀏覽器實際上可以命名爲modern?哪裏支持css3和更多或更少的現代功能?現代瀏覽器檢測?

  • 因爲
  • 如果FF4可以稱爲現代
  • Safari瀏覽器是否小於5是不好的時候歌劇成爲現代人不知道?

謝謝!

function isOldBrowser() { 
    var isOld = false; 
    var detect = 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+(\.\d+)?)/g.exec(ua) || []; 
      return 'IE '+(tem[1] || ''); 
     } 
     M = M[2] ? [M[1].toLowerCase(), parseInt(M[2],10)] : [navigator.appName.toLowerCase(), parseInt(navigator.appVersion,10), '-?']; 
     if((tem= ua.match(/version\/([\.\d]+)/i))!= null) M[2]= tem[1]; 
     return M; 
    }; 
    var browser = detect(); 

    if (document.all && !document.querySelector) isOld = true; //IE7 or lower 
    else if (document.all && document.querySelector && !document.addEventListener) isOld = true; //IE8 
    else if (browser[0] == 'firefox' && browser[1] < 4) isOld = true; //FF4+ 
    else if (browser[0] == 'safari' && browser[1] < 5) isOld = true; //Safari 5+ 
    return isOld; 
} 
+3

[不要做用戶代理解析!](https://developer.mozilla.org/en-US/docs/Browser_detection_using_the_user_agent) – Stijn

+1

爲什麼你需要知道如果東西是「舊」還是「現代」?如果您需要檢查某個瀏覽器中是否存在某個CSS3功能,那麼您可以使用Modernizr - http://modernizr.com/ – Mark

回答

6

Browser sniffing is almost always a bad idea。如果您希望支持舊瀏覽器,請使用Modernizr和功能檢測代替提供替代內容。你可以參考caniuse找出哪些瀏覽器也支持哪些功能。

+0

感謝您的唯一答案。就我個人而言,使用蹩腳瀏覽器的用戶必須關心自己的舒適度...... :)可悲的是,這並不取決於我。 –

0

這個工作對我來說:

var isModernBrowser = typeof(Intl) != "undefined"; 

這樣做的另一件事是,如果你正在運行Internet Explorer 11,但下的SharePoint(即使是最新的SharePoint 2016),它會正確地返回false,因爲部隊的SharePoint頁面document.documentMode == 8.