在asp.net中,使用此构造,我如何检测新的Microsoft"Edge"浏览器?
Dim wrkBrowser As String = ""
Dim wrkBrowserType As String = HttpContext.Current.Request.Browser.Type
If InStr(wrkBrowserType, "Chrome") <> 0 Then
wrkBrowser = "Chrome"
End If
If InStr(wrkBrowserType, "MSIE") <> 0 Then
wrkBrowser = "IE"
End If
If InStr(wrkBrowserType, "FireFox") <> 0 Then
wrkBrowser = "FF"
End If
我知道答案有点晚了,但我到处找都找不到,只能自己写。以下代码将允许Request.Browser变量返回Edge和Edge版本,而不是Chrome。
将以下代码段添加到App_Browsers文件夹中的.browser文件(如platform.browser(将导致其返回Edge和版本。
<browser id="Edge" parentID="Chrome">
<identification>
<userAgent match="Edge/(?'version'(?'major'd+)(?'minor'.d+))" />
</identification>
<capabilities>
<capability name="browser" value="Edge" />
<capability name="version" value="${version}" />
<capability name="majorversion" value="${major}" />
<capability name="minorversion" value="${minor}" />
</capabilities>
</browser>
正如Joey所提到的,用户代理字符串是您想要查看的。Request.Browser的属性不包含任何特定于Edge的内容,但您可以使用HttpContext.Current.Request.UserAgent获取用户代理字符串,并使用.IndexOf("Edge"(进行搜索。
在Windows NT 10.0 Microsoft Edge上,Request.UserAgent如下,而不是Edge
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/90.0.818.66
我不擅长任何.NET,但阅读您的代码后,返回的值似乎
HttpContext.Current.Request.Browser.Type
是用户代理。
您可以在此页面上找到有关Edge的用户代理的信息。
边缘的用户代理:
Mozilla/5.0(Windows NT 10.0;WOW64(AppleWebKit/537.36(KHTML,类似Gecko(Chrome/39.0271.71 Safari/537.36 Edge/12.0
请注意,该值可以根据移动设备、xbox等进行更改。
因此,在您的情况下,请尝试对"Edge"进行检查
您需要像这样检查UserAgent:
if (Regex.IsMatch(HttpContext.Request.UserAgent, @"Edge/d+"))
{
wrkBrowser = "Edge"
}
如果您要检查多个浏览器,请注意检查顺序,因为许多浏览器都喜欢在其UserAgent字符串中提及其他浏览器。
这是Edge当前的用户代理字符串:
Mozilla/5.0(Windows NT 10.0;Win64;x64(AppleWebKit/537.36(KHTML,类似壁虎(Chrome浏览器/51.02704.79 Safari/537.36 Edge浏览器/14.14393
HttpContext.Current.Request.UserAgent.DefaultIfEmpty((.Contains("Edge"(
DefaultIfEmpty((是我编写的一个扩展方法,它确保字符串为空时字符串为空。
为了与浏览器兼容,您可以使用此代码。此方法返回浏览器名称和版本:
private string GetBrowserNameWithVersion
{
var userAgent = Request.UserAgent;
var browserWithVersion = "";
if (userAgent.IndexOf("Edge") > -1)
{
//Edge
browserWithVersion = "Edge Browser Version : " + userAgent.Split(new string[] { "Edge/" }, StringSplitOptions.None)[1].Split('.')[0];
}
else if (userAgent.IndexOf("Chrome") > -1)
{
//Chrome
browserWithVersion = "Chrome Browser Version : " + userAgent.Split(new string[] { "Chrome/" }, StringSplitOptions.None)[1].Split('.')[0];
}
else if (userAgent.IndexOf("Safari") > -1)
{
//Safari
browserWithVersion = "Safari Browser Version : " + userAgent.Split(new string[] { "Safari/" }, StringSplitOptions.None)[1].Split('.')[0];
}
else if (userAgent.IndexOf("Firefox") > -1)
{
//Firefox
browserWithVersion = "Firefox Browser Version : " + userAgent.Split(new string[] { "Firefox/" }, StringSplitOptions.None)[1].Split('.')[0];
}
else if (userAgent.IndexOf("rv") > -1)
{
//IE11
browserWithVersion = "Internet Explorer Browser Version : " + userAgent.Split(new string[] { "rv:" }, StringSplitOptions.None)[1].Split('.')[0];
}
else if (userAgent.IndexOf("MSIE") > -1)
{
//IE6-10
browserWithVersion = "Internet Explorer Browser Version : " + userAgent.Split(new string[] { "MSIE" }, StringSplitOptions.None)[1].Split('.')[0];
}
else if (userAgent.IndexOf("Other") > -1)
{
//Other
browserWithVersion = "Other Browser Version : " + userAgent.Split(new string[] { "Other" }, StringSplitOptions.None)[1].Split('.')[0];
}
return browserWithVersion;
}