2010-02-08 2 views
37

tôi cần phải tách biệt các trình duyệt IE và FF từ những người kháctrình duyệt phát hiện

đó là một pseudo-code:

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

trong protected void Page_Load() sự kiện (nghĩ vậy)

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

không có tác dụng: -/IE và FF là gì?

+7

** Đừng duyệt sniff ** và đặc biệt là không sniff trình duyệt trên phía máy chủ. Bạn đang thiết lập chính mình cho vỡ với proxy cache trừ khi bạn bao gồm đúng 'Vary: User-Agent' tiêu đề, trong trường hợp bạn đang phá vỡ bộ nhớ đệm trong IE. Tìm cách khách hàng thực hiện những gì bạn đang làm (ví dụ: nhận xét có điều kiện của IE) và thích sử dụng khả năng ngửi hơn thay vì chỉ là tên tác nhân người dùng không đáng tin cậy. Khó khăn của trình duyệt mà bạn đang cố gắng làm việc với sự ngửi này là gì? – bobince

+0

Tôi có một kịch bản jQuery chỉ dành cho FF và IE Engines – Cynede

Trả lời

62
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 { } 
+0

không có tham số "Tên" và ... IE và FF là Internet Explorer và Fire Fox ... Tôi không nghĩ đó là FF: -S – Cynede

+0

Cảm ơn bạn đời đã sửa, tôi đã sửa và thử nghiệm nó ngay bây giờ. –

+1

không hoạt động đối với mozilla ... đã thử "Mozilla" thay vì "FF" nhưng điều đó cũng không giúp ích gì cho tôi. – Cynede

1

Tôi sẽ không khuyên bạn nên hack thủ công các mục cụ thể cho trình duyệt bằng JS. Hoặc sử dụng một thư viện javascript như "nguyên mẫu" hoặc "jquery", sẽ xử lý tất cả các vấn đề cụ thể một cách minh bạch.

Hoặc sử dụng các libs này để xác định loại trình duyệt nếu bạn thực sự phải.

Xem thêm Browser & version in prototype library?

+0

tại sao hack ...? Tôi chỉ có mã J cho FF Engine và IE Engine và phải tạo ra những thứ khác cho các trình duyệt khác. – Cynede

+0

cũng vậy, không phải mọi thứ bạn có thể cần để phát hiện trình duyệt sẽ được "cố định" bằng cách sử dụng jquery/prototype ... ví dụ, tôi có một trang web xem trước các tệp trong một kho lưu trữ. MSIE là trình duyệt duy nhất hỗ trợ xem trước các tệp XPS - đó không phải là thứ mà jquery hoặc prototype có thể khắc phục được. –

-2

sử dụng từ

Request.Browser 

liên kết này sẽ giúp bạn:

Detect the browser using ASP.NET and C#

+2

điều này không hữu ích, liên kết được cung cấp chứa mã được sao chép từ MSDN, điều này không hữu ích. – woohoo

16

Đây là một cách bạn có thể yêu cầu thông tin về các trình duyệt được sử dụng, bạn có thể sử dụng điều này để làm câu lệnh if của bạn

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 Article

+2

Tony-The-Lion: Tôi không xúc phạm bạn, chỉ nêu rõ sự thật, và đây là bằng chứng. Mã đó không cho biết bạn đang chạy Firefox hay Chrome. Nó chỉ tốt cho IE. Kết quả của đoạn mã trên là: \ n \ n IE 9: Loại = IE9 trình duyệt = IE FIREFOX 17: Loại = Mozilla17 trình duyệt = Mozilla CHROME 23: Loại = Desktop trình duyệt = AppleMAC-Safari. Chạy mã đó cho chính bạn và xem mã sẽ xuất ra. Tôi không thể dán toàn bộ đầu ra vì trường chỉnh sửa này chỉ cho phép một số lượng ký tự giới hạn. – woohoo

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

Hãy thử đoạn code dưới đây

HttpRequest req = System.Web.HttpContext.Current.Request 
string browserName = req.Browser.Browser;