Ver Mensaje Individual
  #20 (permalink)  
Antiguo 05/05/2012, 05:56
aznanpasogui
 
Fecha de Ingreso: mayo-2012
Mensajes: 1
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Detección de browsers

Hola a todos.

Aunque el tema ya he visto que es antiguo, aquí os dejo una función autoejecutada para que la podais incluir en vuestros script. Genera propiedades nuevas en el objeto window (variables globales, vamos) para saber navegador, versión, compatibilidad con mozilla y motor de rendeo. La he probado con IE, Firefox, Chrome, Opera y Safari

Supongo que sobre la misma idea y con expresiones regulares se podría reducir mucho el código... pero no son mi fuerte, la verdad :)

Espero que os sirva


Código Javascript:
Ver original
  1. //Definimos las caracteresiticas del navegador
  2. (function(){
  3.     var idx, i;
  4.     var navigators=['msie', 'firefox', 'chrome', 'safari', 'opera'];
  5.     var renderingEngines=['trident', 'applewebkit', 'khtml', 'gecko', 'presto'];
  6.     var str=navigator.userAgent.toLowerCase();
  7.  
  8.     //Inicializamos las propiedades en window
  9.     window.navigatorApplication='unknow';
  10.     window.navigatorVersion=0;
  11.     window.navigatorMozilla=0;
  12.     window.navigatorRE='unknow';
  13.     window.navigatorREVersion='';
  14.  
  15.     //Miramos el navegador
  16.     for (i=0; i<navigators.length; i++){
  17.         idx=str.indexOf(navigators[i]);
  18.         if (idx!=-1){
  19.             window.navigatorApplication=navigators[i];
  20.             //Nos buscamos la versión
  21.             window.navigatorVersion=parseFloat(str.substr(idx + navigators[i].length + 1));
  22.             break;
  23.         };
  24.     };
  25.    
  26.     //Miramos si es compatible mozilla
  27.     idx=str.indexOf('mozilla');
  28.     if (idx!=-1) window.navigatorMozilla=parseFloat(str.substr(idx+8));
  29.    
  30.     //Nos buscamos los motores de render
  31.     for (i=0; i<renderingEngines.length; i++){
  32.         idx=str.indexOf(renderingEngines[i]);
  33.         if (idx!=-1){
  34.             window.navigatorRE=renderingEngines[i];
  35.             //Nos buscamos la versión
  36.             str=str.substr(idx + renderingEngines[i].length + 1);
  37.             idx=str.search(/[;\s]/);
  38.             window.navigatorREVersion=str.substr(0, idx);
  39.             break;
  40.         };
  41.     };
  42. })()
  43.  
  44. alert('Navegador:' + navigatorApplication + ' versión:' + navigatorVersion +
  45.     '\nCompatible con Mozilla versión:' + window.navigatorMozilla + '\nMotor de render:' + window.navigatorRE + ' (' + window.navigatorREVersion + ')');

Última edición por aznanpasogui; 05/05/2012 a las 06:04