在開發 ASP.NET 應用程式時,了解用戶端瀏覽器的類型、版本及支援功能,對於提供最佳使用者體驗至關重要。ASP.NET 內建的 HttpBrowserCapabilities 類別提供了豐富的屬性,讓開發人員能輕鬆取得瀏覽器的詳細資訊,進而針對不同環境調整頁面呈現或功能邏輯。
Request.Browser 屬性會回傳一個 HttpBrowserCapabilities 物件。在 HTTP 要求處理期間,該物件會從瀏覽器或用戶端裝置收集資訊,讓應用程式得知瀏覽器所支援的功能類型與層級。該物件透過強型別屬性與泛型名稱/值字典,公開瀏覽器功能相關資訊。
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim s As String = ""
With Request.Browser
s &= "Browser Capabilities" & vbCrLf
s &= "Type = " & .Type & vbCrLf
s &= "Name = " & .Browser & vbCrLf
s &= "Version = " & .Version & vbCrLf
s &= "Major Version = " & .MajorVersion & vbCrLf
s &= "Minor Version = " & .MinorVersion & vbCrLf
s &= "Platform = " & .Platform & vbCrLf
s &= "Is Beta = " & .Beta & vbCrLf
s &= "Is Crawler = " & .Crawler & vbCrLf
s &= "Is AOL = " & .AOL & vbCrLf
s &= "Is Win16 = " & .Win16 & vbCrLf
s &= "Is Win32 = " & .Win32 & vbCrLf
s &= "Supports Frames = " & .Frames & vbCrLf
s &= "Supports Tables = " & .Tables & vbCrLf
s &= "Supports Cookies = " & .Cookies & vbCrLf
s &= "Supports VBScript = " & .VBScript & vbCrLf
s &= "Supports JavaScript = " & _
.EcmaScriptVersion.ToString() & vbCrLf
s &= "Supports Java Applets = " & .JavaApplets & vbCrLf
s &= "Supports ActiveX Controls = " & .ActiveXControls & _
vbCrLf
End With
TextBox1.Text = s
End Sub
private void Button1_Click(object sender, System.EventArgs e)
{
System.Web.HttpBrowserCapabilities browser = Request.Browser;
string s = "Browser Capabilities<br />"
+ "Type = " + browser.Type + "<br />"
+ "Name = " + browser.Browser + "<br />"
+ "Version = " + browser.Version + "<br />"
+ "Major Version = " + browser.MajorVersion + "<br />"
+ "Minor Version = " + browser.MinorVersion + "<br />"
+ "Platform = " + browser.Platform + "<br />"
+ "Is Beta = " + browser.Beta + "<br />"
+ "Is Crawler = " + browser.Crawler + "<br />"
+ "Is AOL = " + browser.AOL + "<br />"
+ "Is Win16 = " + browser.Win16 + "<br />"
+ "Is Win32 = " + browser.Win32 + "<br />"
+ "Supports Frames = " + browser.Frames + "<br />"
+ "Supports Tables = " + browser.Tables + "<br />"
+ "Supports Cookies = " + browser.Cookies + "<br />"
+ "Supports VBScript = " + browser.VBScript + "<br />"
+ "Supports JavaScript = " +
browser.EcmaScriptVersion.ToString() + "<br />"
+ "Supports Java Applets = " + browser.JavaApplets + "<br />"
+ "Supports ActiveX Controls = " + browser.ActiveXControls
+ "<br />";
Response.Write(s);
}
取得瀏覽器資訊後,可針對不同情境進行優化:
EcmaScriptVersion 判斷可使用的 JavaScript 功能集。瀏覽器偵測依賴 User-Agent 字串與 .NET 內建的瀏覽器定義檔(.browser 檔案)。隨著瀏覽器版本快速迭代,建議定期更新 .NET Framework 或手動維護瀏覽器定義檔,以確保偵測準確性。現代開發中,建議搭配功能偵測(Feature Detection)而非單純依賴瀏覽器識別。