CEO系统管理员.NET4.5.NET 3.0设计/图形架构师.NET4.NET 2.0.NET 3.5C# 5.0C# 2.0初学者C# 3.5C# 3.0C# 4.0开发.NETVisual BasicASP.NETC#
如何让你的网站确定用户是否正在兼容模式下运行 IE 浏览器。
本文展示了一种快速确定用户的 IE 浏览器是否处于兼容模式的方法。
引言
随着越来越多的网站使用 HTML5 和使用 HTML5 的第三方控件,我们不希望用户的浏览器使用兼容模式。本文提出了一种确定浏览器是否处于兼容模式的方法。
背景
我所在的公司过去要求 IE 用户将其浏览器设置为兼容模式,以便我们的网站能够正确呈现。然后我们迁移到了 .net 和 HTML5 的更新版本。现在我们希望我们的用户不再使用兼容模式。
问题
当用户登录我们的网站时,我们希望提供一条消息,让他们知道他们的 IE 浏览器已启用兼容模式。问题是:确定他们是否已启用兼容模式的最简单方法是什么?
解决方案
我花了一些时间试图找到确定浏览器是否处于兼容模式的最佳方法。当您在 Google 上搜索如何查找浏览器的兼容模式时,您会找到各种各样的解决方案。有一种 JavaScript 解决方案。有一种解决方案是查看您的 .net 代码中的 Request.UserAgent。当我查看这些选项时,它们似乎更复杂,并且可能会随着新版本的 IE 的发布而中断。当我寻找一个共同点时,我发现在任何浏览器中(截至撰写本文时,我们使用的是 IE11),当设置为兼容模式时,它看起来像 IE7。所以这是我的解决方案
'VB.net
'check for compatibility mode
If Request.Browser IsNot Nothing AndAlso _
Request.Browser.Browser = "IE" AndAlso _
Request.Browser.Version = "7.0" Then
'show error or do action
End If
//C#
//check for compatibility mode
if (Request.Browser != null && Request.Browser.Browser == "IE" &&
Request.Browser.Version == "7.0") {
//show error or do action
}
当然,此解决方案的缺点是,如果有人实际使用 IE7,他们会看到一条消息,告诉他们关闭兼容模式。这是我愿意承担的风险。
结论
这是一种简单的解决方案,用于确定您的网站上的用户是否正在使用兼容模式。如果您需要更复杂的东西,那里有更多的解决方案。我发现这个简单的解决方案对我来说效果很好。
历史
首次发布。