无法确定IE11中的浏览器版本

时间:2015-03-25 10:06:43

标签: c# asp.net httprequest internet-explorer-11

我正在尝试使用以下代码确定浏览器和用户访问我们应用程序的版本:

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;
       }
 }

当用户在IE11中打开网站时,此代码始终返回false,此工作正常,直到我们迁移到IE11。这可能是造成这种情况的原因。如果有解决方法,请建议。

1 个答案:

答案 0 :(得分: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())