2015-03-25 33 views
1

我試圖確定瀏覽器和版本,使我們的用戶訪問使用下面的代碼我們的應用程序的瀏覽器版本:無法確定在IE11

public bool MyBrowser(HttpRequestBase request) 
    { 
     HttpBrowserCapabilitiesBase browser = request.Browser; 
     switch (browser.Browser) 
     { 
      case "IE": 
       { 
        if (browser.MajorVersion < 6) 
         //do something 
       } 
      case "Firefox": 
       { 
        if (browser.MajorVersion < 3) 
         //do something 
       } 
      case "AppleMAC-Safari": 
       { 
        if (request.UserAgent.Contains("Chrome") || browser.MajorVersion < 4) 
         return false; 
        return true; 

       } 

      default: return false; 
     } 
} 

這個代碼總是返回false用戶打開時,在IE11中的這個網站,這件作品很好,直到我們遷移到IE11。這可能是發生這種情況的原因。請建議是否有解決方法。

+0

你檢查這個答案:http://stackoverflow.com/questions/19999989/internet-explorer-11-detection-on-server-side – HABJAN 2015-03-25 10:17:56

+0

請參見[56,「問題包括‘標籤中的’他們標題?「](http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles),其中的共識是」不,他們不應該「! – 2015-03-25 10:19:22

回答

0

您可以使用類似於下面的函數來檢測IE11。它對非IE瀏覽器返回0。


             
  

 
function ie_ver() { 
 
    var iev = 0; 
 
    var ieold = (/MSIE (\d+\.\d+);/.test(navigator.userAgent)); 
 
    var trident = !!navigator.userAgent.match(/Trident\/7.0/); 
 
    var rv = navigator.userAgent.indexOf("rv:11.0"); 
 

 
    if (ieold) iev = new Number(RegExp.$1); 
 
    if (navigator.appVersion.indexOf("MSIE 10") != -1) iev = 10; 
 
    if (trident && rv != -1) iev = 11; 
 

 
    return iev; 
 
} 
 

 

 
alert(ie_ver())
+0

同意上面的代碼工作,但我有很多瀏覽器來檢查。我寧願在後面的代碼中執行它。謝謝! – TRR 2015-03-25 11:46:15

+1

您也可以檢查UserAgent是否在代碼後面包含Trident,例如:if(request.UserAgent.Contains(「Trident」)){// IE11} – Jaco 2015-03-25 11:49:48

+0

當然。謝謝您的幫助! – TRR 2015-03-25 12:50:25