首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.NET中IE 11的服务器端浏览器嗅探

.NET中IE 11的服务器端浏览器嗅探
EN

Stack Overflow用户
提问于 2013-12-13 02:23:30
回答 1查看 515关注 0票数 1

在IE11发布之前,我一直在使用

代码语言:javascript
复制
context.Request.Browser.Browser == "IE" 

检测服务器端的IE浏览器。由于IE11对用户代理进行了更改,因此现在使用相同的技术不再有效。

context.Request.Browser.UserAgent上的正则表达式是唯一的选择吗?

EN

回答 1

Stack Overflow用户

发布于 2013-12-14 05:55:35

首先,为什么你首先需要浏览器嗅探。你真的不应该这样做,而是在客户端进行功能检测,并从那里进行调整。以下是如何检查浏览器是否“切掉了榨菜”

代码语言:javascript
复制
        <script>

        if (!('querySelector' in document)  //this should work in ie 9+
             || !('localStorage' in window)  //ie 8+
             || !('addEventListener' in window)  //ie 8 + (I think)
            || !('matchMedia' in window)) {//ie 10+

            //do your redirect here
        }

    </script>

说到这里,我构建了一个方法来检测它是否过时的IE。基本上,它会检查浏览器是否为“IE”,以及主要版本是否为10。如果不是10,则为9、8、7。IE 11返回“Internet Explorer”,因此您可以使用它。

代码语言:javascript
复制
        public static bool IsOldIE()
    {

        var Browser = HttpContext.Current.Request.Browser;
        var isIE = Browser.Browser == "IE";

        if (!isIE)
        {
            return false;
        }

        return Browser.MajorVersion != 10;

    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20551255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档