programing

브라우저 탐지

codeshow 2023. 9. 9. 10:22
반응형

브라우저 탐지

IE와 FF 브라우저를 다른 브라우저와 분리해야 합니다.

사이비 코드입니다.

If (CurrentBrowser == IE(6+) or FF(2+) )
{
...
}
else 
{
...
}

인에protected void Page_Load()이벤트 (그렇게 생각)

if ((Request.Browser.Type == "IE") || (Request.Browser.Type == "FF"))
{
    WebMsgBox.Show("1111");
}

효과 없음 :-/ IE 및 FF 유형은 무엇입니까?

if (Request.Browser.Type.Contains("Firefox")) // replace with your check
{
    ...
} 
else if (Request.Browser.Type.ToUpper().Contains("IE")) // replace with your check
{
    if (Request.Browser.MajorVersion  < 7)
    { 
        DoSomething(); 
    }
    ...
}
else { }

사용 중인 브라우저에 대한 정보를 요청할 수 있는 방법이 있습니다. 이 방법을 사용하여 if 문을 수행할 수 있습니다.

System.Web.HttpBrowserCapabilities browser = Request.Browser;
    string s = "Browser Capabilities\n"
        + "Type = "                    + browser.Type + "\n"
        + "Name = "                    + browser.Browser + "\n"
        + "Version = "                 + browser.Version + "\n"
        + "Major Version = "           + browser.MajorVersion + "\n"
        + "Minor Version = "           + browser.MinorVersion + "\n"
        + "Platform = "                + browser.Platform + "\n"
        + "Is Beta = "                 + browser.Beta + "\n"
        + "Is Crawler = "              + browser.Crawler + "\n"
        + "Is AOL = "                  + browser.AOL + "\n"
        + "Is Win16 = "                + browser.Win16 + "\n"
        + "Is Win32 = "                + browser.Win32 + "\n"
        + "Supports Frames = "         + browser.Frames + "\n"
        + "Supports Tables = "         + browser.Tables + "\n"
        + "Supports Cookies = "        + browser.Cookies + "\n"
        + "Supports VBScript = "       + browser.VBScript + "\n"
        + "Supports JavaScript = "     + 
            browser.EcmaScriptVersion.ToString() + "\n"
        + "Supports Java Applets = "   + browser.JavaApplets + "\n"
        + "Supports ActiveX Controls = " + browser.ActiveXControls 
              + "\n";

MSDN 기사

아래 코드를 사용해 보십시오.

HttpRequest req = System.Web.HttpContext.Current.Request
string browserName = req.Browser.Browser;
    private void BindDataBInfo()
    {
        System.Web.HttpBrowserCapabilities browser = Request.Browser;
        Literal1.Text = "<table border=\"1\" cellspacing=\"3\" cellpadding=\"2\">";
        foreach (string key in browser.Capabilities.Keys)
        {
            Literal1.Text += "<tr><td>" + key + "</td><td>" + browser[key] + "</tr>";
        }
        Literal1.Text += "</table>";
        browser = null;
    }

저는 JS로 브라우저별 해킹을 수동으로 하는 것은 권고하지 않을 것입니다.프로토타입 또는 jquery와 같은 자바스크립트 라이브러리를 사용하면 모든 특정 문제를 투명하게 처리할 수 있습니다.

필요한 경우 이 립을 사용하여 브라우저 유형을 결정할 수 있습니다.

프로토타입 라이브러리에서 브라우저 버전도 볼 수 있습니까?

브라우저 호환을 위해 이 코드를 사용할 수 있습니다.이 메서드는 브라우저 이름과 버전을 반환합니다.

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

나는 같은 것에 대한 해결책을 찾았습니다.

        public static string GetBrowserDetails()
        {
          string  BrowserDetails = HttpContext.Current.Request.Browser.Browser + " - " + HttpContext.Current.Request.Browser.Version + ";  Operating System : " + HttpContext.Current.Request.Browser.Platform;
          return BrowserDetails;
        }

OUTPUT : 
Chrome - 88.0; Operating System : WinNT

로부터 사용.

Request.Browser

이 링크가 도움이 될 것입니다.

ASP를 사용하여 브라우저를 탐지합니다.NET 및 C#

언급URL : https://stackoverflow.com/questions/2221722/browser-detection

반응형