在IE11发布之前,我一直在使用
context.Request.Browser.Browser == "IE" 检测服务器端的IE浏览器。由于IE11对用户代理进行了更改,因此现在使用相同的技术不再有效。
context.Request.Browser.UserAgent上的正则表达式是唯一的选择吗?
发布于 2013-12-14 05:55:35
首先,为什么你首先需要浏览器嗅探。你真的不应该这样做,而是在客户端进行功能检测,并从那里进行调整。以下是如何检查浏览器是否“切掉了榨菜”
<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”,因此您可以使用它。
public static bool IsOldIE()
{
var Browser = HttpContext.Current.Request.Browser;
var isIE = Browser.Browser == "IE";
if (!isIE)
{
return false;
}
return Browser.MajorVersion != 10;
}https://stackoverflow.com/questions/20551255
复制相似问题