2010-02-08 10 views
37

necesito para separar los navegadores IE y FF de otrosnavegador detección

es un pseudo-código:

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

en protected void Page_Load() evento (creo)

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

ningún efecto: -/¿Qué son los tipos IE y FF?

+7

** No ** navegador aspiración y sobre todo no hacer sniff navegador en el lado del servidor. Te estás preparando para romper con los cachés de proxy a menos que incluyas el encabezado 'Vary: User-Agent' adecuado, en cuyo caso estás rompiendo el caché en IE. Encuentre una forma de hacer lo que está haciendo en el lado del cliente (por ejemplo, los comentarios condicionales de IE), y prefiera olfatear las capacidades en lugar de solo el nombre de agente de usuario no confiable. ¿Cuál es la dificultad del navegador que está tratando de solucionar con este olfateo? – bobince

+0

Tengo un script jQuery solo para motores FF e IE – Cynede

Respuesta

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

no hay tal parámetro "Nombre" y ... IE y FF son Internet Explorer y Fire Fox ... No creo que sea FF: -S – Cynede

+0

Gracias por corregir, lo he corregido y probado ahora. –

+1

no funciona para mozilla ... probé "Mozilla" en vez de "FF" pero eso tampoco me ayudó. – Cynede

1

No recomendaría piratear cosas específicas del navegador manualmente con JS. Utilice una biblioteca de JavaScript como "prototipo" o "jquery", que manejará todos los problemas específicos de forma transparente.

O use estas librerías para determinar el tipo de navegador si realmente lo necesita.

Véase también Browser & version in prototype library?

+0

¿por qué hackear ...? Acabo de obtener el código J para FF Engine e IE Engine y debo hacer otras cosas para otros navegadores. – Cynede

+0

también, no todo lo que necesite para detectar el navegador será "reparado" mediante el uso de jquery/prototype ... por ejemplo, tengo un sitio que proporciona una vista previa de los archivos en un repositorio. MSIE es el único navegador compatible con la vista previa de archivos XPS; eso no es algo que jquery o prototype pueda arreglar. –

16

Aquí está una manera que usted puede solicitar información sobre el navegador utilizado, puede use esto para hacer su declaración 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 Article

+2

Tony-The-Lion: No te insulté, solo mencioné los hechos, y aquí está la prueba. Ese código no indica si está ejecutando Firefox o Chrome. Solo es bueno para IE. La salida del código anterior es: \ n \ n IE 9: Tipo = IE9 Browser = IE FIREFOX 17: Tipo = Mozilla17 Browser = Mozilla CHROME 23: Tipo = Escritorio Browser = AppleMAC-Safari. Ejecute ese código usted mismo y vea lo que se generará. No puedo pegar todo el resultado porque este campo de edición solo permite un número limitado de caracteres. – 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

Pruebe el código de abajo

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