web-dev-qa-db-ja.com

ASP.NET4.0で最高のブラウザ検出ソリューション

私はこのトピックをグーグルで検索し、ブラウザー機能を構成する3つの異なる方法に出くわしました。browscap.ini、web.configのbrowserCaps要素、およびApp_Browsersの.browserファイルです。 .browserファイルが最新の方法だと思いましたが、最新のファイルが見つからないようです。しかし、 http://browsers.garykeith.com/downloads.asp から非常に新鮮なbrowscap.iniを見つけました。

私の最優先事項は、訪問者の統計から一般的なクローラーを除外することです。 2番目の優先順位は、正しいバージョンのブラウザとOSを検出することです(例:Opera 11/Win7)。

使用できるライブラリはありますか? browscap.iniはまだ有効な方法ですか?システムファイルにアクセスせずに使用することは可能ですか?最新の.browserファイルはどこにありますか?

20
Mike Koder

http://user-agent-string.info/ からユーザーエージェントパーサーを見つけましたが、私の目的には十分なようです。

7
Mika Kolari

詳細: http://msdn.Microsoft.com/en-us/library/3yekbd5b.aspx これを確認しましたか:

    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"
        + "Supports JavaScript Version = " +
            browser["JavaScriptVersion"] + "\n";

    TextBox1.Text = s;
8
Pranay Rana

他の誰もその暗い道をたどらないように、jQueryチームでさえjQuery.browserオブジェクトを使用しないことを推奨していることに注意してください。

「$。browserプロパティはjQuery1.3で非推奨になりました」

3
Jral

最良の答えは、ブラウザの検出ではなく、機能の検出です。これは、Firefox&Chromeが数か月ごとにリリースを発表し、モバイルブラウザの使用が増加している日に特に当てはまります。Modernizr(http://Modernizr.com)または同等のライブラリを使用して興味のある機能を検出します。

0
Steve Albers