navegador internet detectar datos javascript browser version browser-detection

internet - javascript datos del navegador



¿Cómo se puede detectar la versión de un navegador? (23)

Añadiendo mi propia implementación de la respuesta de Hermann. Necesitaba la detección del sistema operativo por lo que se ha agregado. También incluye algún código ES6 (porque tenemos un transpiler) que puede necesitar para ES5-ify.

detectClient() { let nav = navigator.appVersion, os = ''unknown'', client = (() => { let agent = navigator.userAgent, engine = agent.match(/(opera|chrome|safari|firefox|msie|trident(?=//))//?/s*(/d+)/i) || [], build; if(/trident/i.test(engine[1])){ build = //brv[ :]+(/d+)/g.exec(agent) || []; return {browser:''IE'', version:(build[1] || '''')}; } if(engine[1] === ''Chrome''){ build = agent.match(//bOPR//(/d+)/); if(build !== null) { return {browser: ''Opera'', version: build[1]}; } } engine = engine[2] ? [engine[1], engine[2]] : [navigator.appName, nav, ''-?'']; if((build = agent.match(/version//(/d+)/i)) !== null) { engine.splice(1, 1, build[1]); } return { browser: engine[0], version: engine[1] }; })(); switch (true) { case nav.indexOf(''Win'') > -1: os = ''Windows''; break; case nav.indexOf(''Mac'') > -1: os = ''MacOS''; break; case nav.indexOf(''X11'') > -1: os = ''UNIX''; break; case nav.indexOf(''Linux'') > -1: os = ''Linux''; break; } client.os = os; return client; }

Devuelve: Object {browser: "Chrome", version: "50", os: "UNIX"}

He estado buscando un código que me permita detectar si el usuario que visita el sitio web tiene Firefox 3 o 4. Todo lo que he encontrado es un código para detectar el tipo de navegador pero no la versión.

¿Cómo puedo detectar la versión de un navegador como este?


Aquí está la versión java para alguien a quien le gustaría hacerlo en el lado del servidor usando el String devuelto por HttpServletRequest.getHeader("User-Agent");

Está trabajando en las 70 configuraciones diferentes del navegador que utilicé para probar.

public static String decodeBrowser(String userAgent) { userAgent= userAgent.toLowerCase(); String name = "unknown"; String version = "0.0"; Matcher userAgentMatcher = USER_AGENT_MATCHING_PATTERN.matcher(userAgent); if (userAgentMatcher.find()) { name = userAgentMatcher.group(1); version = userAgentMatcher.group(2); if ("trident".equals(name)) { name = "msie"; Matcher tridentVersionMatcher = TRIDENT_MATCHING_PATTERN.matcher(userAgent); if (tridentVersionMatcher.find()) { version = tridentVersionMatcher.group(1); } } } return name + " " + version; } private static final Pattern USER_AGENT_MATCHING_PATTERN=Pattern.compile("(opera|chrome|safari|firefox|msie|trident(?=///))///?//s*([//d//.]+)"); private static final Pattern TRIDENT_MATCHING_PATTERN=Pattern.compile("//brv[ :]+(//d+(//.//d+)?)");


Aquí hay varias bibliotecas prominentes que manejan la detección del navegador.

Bowser by lancedikson - 2,713 ★ s - Última actualización 2 de agosto de 2018 - 2.6KB

console.log(bowser); document.write("You are using " + bowser.name + " v" + bowser.version + " on " + bowser.osname);

<script src="https://cdnjs.cloudflare.com/ajax/libs/bowser/1.9.3/bowser.min.js"></script>

github.com/bestiejs/platform.js by bestiejs - 2,059 ★ s - Última actualización 3 de julio de 2018 - 5.7KB

console.log(platform); document.write("You are using " + platform.name + " v" + platform.version + " on " + platform.os);

<script src="https://cdnjs.cloudflare.com/ajax/libs/platform/1.3.5/platform.min.js"></script>

Detect.js by darcyclarke - 509 ★ s - Última actualización 26 de octubre de 2015 - 2.9KB

var result = detect.parse(navigator.userAgent); console.log(result); document.write("You are using " + result.browser.family + " v" + result.browser.version + " on " + result.os.family);

<script src="https://cdnjs.cloudflare.com/ajax/libs/Detect.js/2.2.2/detect.min.js"></script>

jQuery Browser by gabceb - 485 ★ s - Última actualización 23 de noviembre de 2015 - 1.3KB

console.log($.browser) document.write("You are using " + $.browser.name + " v" + $.browser.versionNumber + " on " + $.browser.platform);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-browser/0.1.0/jquery.browser.min.js"></script>

Detección del navegador (ARCHIVO) por QuirksMode - Última actualización 14 de noviembre de 2013 - 884B

console.log(BrowserDetect) document.write("You are using " + BrowserDetect.browser + " v" + BrowserDetect.version + " on " + BrowserDetect.OS);

<script src="https://kylemit.github.io/libraries/libraries/BrowserDetect.js"></script>

Menciones notables:

  • WhichBrowser - 1,230 ★ s - Última actualización 5 de febrero de 2018
  • Modernizr - 22,320 ★ s - Última actualización 4 de marzo de 2018 - Para vencer a un caballo muerto, la detección de características debe dirigir cualquier pregunta de estilo canIuse . La detección del navegador es realmente sólo para las sutilezas.

Otras lecturas

  • Desbordamiento de pila : ¿Detección del navegador en JavaScript?
  • Desbordamiento de pila : ¿Cómo detectar los navegadores Safari, Chrome, IE, Firefox y Opera?

En Javascript puro puedes hacer una coincidencia RegExp en el navigator.userAgent para encontrar la versión de Firefox:

var uMatch = navigator.userAgent.match(/Firefox//(.*)$/), ffVersion; if (uMatch && uMatch.length > 1) { ffVersion = uMatch[1]; }

ffVersion quedará undefined si no es un navegador Firefox.

Ver ejemplo de trabajo →


Escribí esto para mis necesidades.

Obtenga información como si es un dispositivo móvil o si tiene una pantalla retina

intentalo

var nav = { isMobile:function(){ return (navigator.userAgent.match(/iPhone|iPad|iPod|Android|BlackBerry|Opera Mini|IEMobile/i) != null); }, isDesktop:function(){ return (navigator.userAgent.match(/iPhone|iPad|iPod|Android|BlackBerry|Opera Mini|IEMobile/i) == null); }, isAndroid: function() { return navigator.userAgent.match(/Android/i); }, isBlackBerry: function() { return navigator.userAgent.match(/BlackBerry/i); }, isIOS: function() { return navigator.userAgent.match(/iPhone|iPad|iPod/i); }, isOpera: function() { return navigator.userAgent.match(/Opera Mini/i); }, isWindows: function() { return navigator.userAgent.match(/IEMobile/i); }, isRetina:function(){ return window.devicePixelRatio && window.devicePixelRatio > 1; }, isIPad:function(){ isIPad = (/ipad/gi).test(navigator.platform); return isIPad; }, isLandscape:function(){ if(window.innerHeight < window.innerWidth){ return true; } return false; }, getIOSVersion:function(){ if(this.isIOS()){ var OSVersion = navigator.appVersion.match(/OS (/d+_/d+)/i); OSVersion = OSVersion[1] ? +OSVersion[1].replace(''_'', ''.'') : 0; return OSVersion; } else return false; }, isStandAlone:function(){ if(_.is(navigator.standalone)) return navigator.standalone; return false; }, isChrome:function(){ var isChrome = (/Chrome/gi).test(navigator.appVersion); var isSafari = (/Safari/gi).test(navigator.appVersion) return isChrome && isSafari; }, isSafari:function(){ var isSafari = (/Safari/gi).test(navigator.appVersion) var isChrome = (/Chrome/gi).test(navigator.appVersion) return !isChrome && isSafari; } }


Escribí un detector de versión basado en la respuesta de Hermann Ingjaldsson, pero más robusto y que devuelve un objeto con datos de nombre / versión. Cubre los principales navegadores, pero no me molesto con la gran cantidad de móviles y de menores:

function getBrowserData(nav) { var data = {}; var ua = data.uaString = nav.userAgent; var browserMatch = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=//))//?/s*([/d/.]+)/i) || []; if (browserMatch[1]) { browserMatch[1] = browserMatch[1].toLowerCase(); } var operaMatch = browserMatch[1] === ''chrome''; if (operaMatch) { operaMatch = ua.match(//bOPR//([/d/.]+)/); } if (/trident/i.test(browserMatch[1])) { var msieMatch = //brv[ :]+([/d/.]+)/g.exec(ua) || []; data.name = ''msie''; data.version = msieMatch[1]; } else if (operaMatch) { data.name = ''opera''; data.version = operaMatch[1]; } else if (browserMatch[1] === ''safari'') { var safariVersionMatch = ua.match(/version//([/d/.]+)/i); data.name = ''safari''; data.version = safariVersionMatch[1]; } else { data.name = browserMatch[1]; data.version = browserMatch[2]; } var versionParts = []; if (data.version) { var versionPartsMatch = data.version.match(/(/d+)/g) || []; for (var i=0; i < versionPartsMatch.length; i++) { versionParts.push(versionPartsMatch[i]); } if (versionParts.length > 0) { data.majorVersion = versionParts[0]; } } data.name = data.name || ''(unknown browser name)''; data.version = { full: data.version || ''(unknown full browser version)'', parts: versionParts, major: versionParts.length > 0 ? versionParts[0] : ''(unknown major browser version)'' }; return data; };

Entonces se puede usar así:

var brData = getBrowserData(window.navigator || navigator); console.log(''name: '' + brData.name); console.log(''major version: '' + brData.version.major); // etc.


Esta es una mejora en la respuesta de Kennebec.

function get_browser() { var ua=navigator.userAgent,tem,M=ua.match(/(opera|chrome|safari|firefox|msie|trident(?=//))//?/s*(/d+)/i) || []; if(/trident/i.test(M[1])){ tem=//brv[ :]+(/d+)/g.exec(ua) || []; return {name:''IE'',version:(tem[1]||'''')}; } if(M[1]===''Chrome''){ tem=ua.match(//bOPR|Edge//(/d+)/) if(tem!=null) {return {name:''Opera'', version:tem[1]};} } M=M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, ''-?'']; if((tem=ua.match(/version//(/d+)/i))!=null) {M.splice(1,1,tem[1]);} return { name: M[0], version: M[1] }; }

Y luego simplemente ejecuta:

var browser=get_browser(); // browser.name = ''Chrome'' // browser.version = ''40''

De esta manera usted puede protegerse de la oscuridad del código.


Estaba buscando una solución para mí, ya que jQuery 1.9.1 y superior han eliminado la funcionalidad $.browser . Se me ocurrió esta pequeña función que funciona para mí. Necesita una variable global (he llamado mine _browser) para verificar qué navegador es. He escrito un jsfiddle para ilustrar cómo se puede usar, por supuesto, se puede expandir para otros navegadores simplemente agregando una prueba para _browser.foo, donde foo es el nombre del navegador. Hice sólo los populares.

detectBrowser()

_browser = {}; function detectBrowser() { var uagent = navigator.userAgent.toLowerCase(), match = ''''; _browser.chrome = /webkit/.test(uagent) && /chrome/.test(uagent) && !/edge/.test(uagent); _browser.firefox = /mozilla/.test(uagent) && /firefox/.test(uagent); _browser.msie = /msie/.test(uagent) || /trident/.test(uagent) || /edge/.test(uagent); _browser.safari = /safari/.test(uagent) && /applewebkit/.test(uagent) && !/chrome/.test(uagent); _browser.opr = /mozilla/.test(uagent) && /applewebkit/.test(uagent) && /chrome/.test(uagent) && /safari/.test(uagent) && /opr/.test(uagent); _browser.version = ''''; for (x in _browser) { if (_browser[x]) { match = uagent.match( new RegExp("(" + (x === "msie" ? "msie|edge" : x) + ")( |//)([0-9]+)") ); if (match) { _browser.version = match[3]; } else { match = uagent.match(new RegExp("rv:([0-9]+)")); _browser.version = match ? match[1] : ""; } break; } } _browser.opera = _browser.opr; delete _browser.opr; }

Para comprobar si el navegador actual es Opera harías

if (_browser.opera) { // Opera specific code }

Editar Se corrigió el formato, se corrigió la detección para IE11 y Opera / Chrome, se cambió a browserResult desde el resultado. Ahora el orden de las teclas _browser no importa. Enlace jsFiddle actualizado.

2015/08/11 Editar Se agregó un nuevo testcase para Internet Explorer 12 (EDGE), se solucionó un pequeño problema de expresión regular. Enlace jsFiddle actualizado.


Esto combina la respuesta de Kennebec (K) con la respuesta de Hermann Ingjaldsson (H):

  • Mantiene el código mínimo de la respuesta original. (K)
  • Funciona con Microsoft Edge (K)
  • Extiende el objeto de navegador en lugar de crear una nueva variable / objeto. (K)
  • Separa la versión y el nombre del navegador en objetos secundarios independientes. (H)

navigator.browserSpecs = (function(){ var ua = navigator.userAgent, tem, M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=//))//?/s*(/d+)/i) || []; if(/trident/i.test(M[1])){ tem = //brv[ :]+(/d+)/g.exec(ua) || []; return {name:''IE'',version:(tem[1] || '''')}; } if(M[1]=== ''Chrome''){ tem = ua.match(//b(OPR|Edge)//(/d+)/); if(tem != null) return {name:tem[1].replace(''OPR'', ''Opera''),version:tem[2]}; } M = M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, ''-?'']; if((tem = ua.match(/version//(/d+)/i))!= null) M.splice(1, 1, tem[1]); return {name:M[0], version:M[1]}; })(); console.log(navigator.browserSpecs); //Object { name: "Firefox", version: "42" } if (navigator.browserSpecs.name == ''Firefox'') { // Do something for Firefox. if (navigator.browserSpecs.version > 42) { // Do something for Firefox versions greater than 42. } } else { // Do something for all other browsers. }


He hecho un script en código ASP para detectar el navegador, la versión del navegador, el sistema operativo y la versión del sistema operativo. El motivo por el que hice esto en ASP fue porque quiero almacenar los datos en una base de datos de registro. Así que tuve que detectar el lado del servidor del navegador.

Aquí está el código:

on error resume next ua = lcase(Request.ServerVariables("HTTP_USER_AGENT")) moz = instr(ua,"mozilla") ffx = instr(ua,"firefox") saf = instr(ua,"safari") crm = instr(ua,"chrome") max = instr(ua,"maxthon") opr = instr(ua,"opera") ie4 = instr(ua,"msie 4") ie5 = instr(ua,"msie 5") ie6 = instr(ua,"msie 6") ie7 = instr(ua,"msie 7") ie8 = instr(ua,"trident/4.0") ie9 = instr(ua,"trident/5.0") if moz>0 then BrowserType = "Mozilla" BrVer = mid(ua,moz+8,(instr(moz,ua," ")-(moz+8))) end if if ffx>0 then BrowserType = "FireFox" BrVer = mid(ua,ffx+8) end if if saf>0 then BrowserType = "Safari" BrVerPlass = instr(ua,"version") BrVer = mid(ua,BrVerPlass+8,(instr(BrVerPlass,ua," ")-(BrVerPlass+8))) end if if crm>0 then BrowserType = "Chrome" BrVer = mid(ua,crm+7,(instr(crm,ua," ")-(crm+7))) end if if max>0 then BrowserType = "Maxthon" BrVer = mid(ua,max+8,(instr(max,ua," ")-(max+8))) end if if opr>0 then BrowserType = "Opera" BrVerPlass = instr(ua,"presto") BrVer = mid(ua,BrVerPlass+7,(instr(BrVerPlass,ua," ")-(BrVerPlass+7))) end if if ie4>0 then BrowserType = "Internet Explorer" BrVer = "4" end if if ie5>0 then BrowserType = "Internet Explorer" BrVer = "5" end if if ie6>0 then BrowserType = "Internet Explorer" BrVer = "6" end if if ie7>0 then BrowserType = "Internet Explorer" BrVer = "7" end if if ie8>0 then BrowserType = "Internet Explorer" BrVer = "8" if ie7>0 then BrVer = BrVer & " (in IE7 compability mode)" end if if ie9>0 then BrowserType = "Internet Explorer" BrVer = "9" if ie7>0 then BrVer = BrVer & " (in IE7 compability mode)" if ie8>0 then BrVer = BrVer & " (in IE8 compability mode)" end if OSSel = mid(ua,instr(ua,"(")+1,(instr(ua,";")-instr(ua,"("))-1) OSver = mid(ua,instr(ua,";")+1,(instr(ua,")")-instr(ua,";"))-1) if BrowserType = "Internet Explorer" then OSStart = instr(ua,";") OSStart = instr(OSStart+1,ua,";") OSStopp = instr(OSStart+1,ua,";") OSsel = mid(ua,OSStart+2,(OSStopp-OSStart)-2) end if Select case OSsel case "windows nt 6.1" OS = "Windows" OSver = "7" case "windows nt 6.0" OS = "Windows" OSver = "Vista" case "windows nt 5.2" OS = "Windows" OSver = "Srv 2003 / XP x64" case "windows nt 5.1" OS = "Windows" OSver = "XP" case else OS = OSSel End select Response.write "<br>" & ua & "<br>" & BrowserType & "<br>" & BrVer & "<br>" & OS & "<br>" & OSver & "<br>" ''Use the variables here for whatever you need........


La biblioteca de JavaScript github.com/ded/bowser ofrece esta funcionalidad.

if (bowser.msie && bowser.version <= 6) { alert(''Hello China''); }

Parece estar bien mantenido.


Lo uso para obtener el Nombre y el número (int) de la versión del navegador real:

function getInfoBrowser() { var ua = navigator.userAgent, tem, M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=//))//?/s*(/d+)/i) || []; if (/trident/i.test(M[1])) { tem = //brv[ :]+(/d+)/g.exec(ua) || []; return { name: ''Explorer'', version: parseInt((tem[1] || '''')) }; } if (M[1] === ''Chrome'') { tem = ua.match(//b(OPR|Edge)//(/d+)/); if (tem != null) { let app = tem.slice(1).toString().split('',''); return { name: app[0].replace(''OPR'', ''Opera''), version: parseInt(app[1]) }; } } M = M[2] ? [M[1], M[2]] : [navigator.appName, navigator.appVersion, ''-?'']; if ((tem = ua.match(/version//(/d+)/i)) != null) M.splice(1, 1, tem[1]); return { name: M[0], version: parseInt(M[1]) }; } function getBrowser(){ let info = getInfoBrowser(); $("#i-name").html(info.name); $("#i-version").html(info.version); }

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="button" onclick="getBrowser();" value="Get Info Browser"/> <hr/> Name: <span id="i-name"></span><br/> Version: <span id="i-version"></span>

Esto corre en

Cromo ; Firefox; Safari Internet Explorer (> = 9); Ópera; Borde

Para mi.


Mire navigator.userAgent - Firefox/xxx.xxx.xxx se especifica justo al final.


Puede ver lo que dice el navegador y usar esa información para registrar o probar múltiples navegadores.

navigator.sayswho= (function(){ var ua= navigator.userAgent, tem, M= ua.match(/(opera|chrome|safari|firefox|msie|trident(?=//))//?/s*(/d+)/i) || []; if(/trident/i.test(M[1])){ tem= //brv[ :]+(/d+)/g.exec(ua) || []; return ''IE ''+(tem[1] || ''''); } if(M[1]=== ''Chrome''){ tem= ua.match(//b(OPR|Edge)//(/d+)/); if(tem!= null) return tem.slice(1).join('' '').replace(''OPR'', ''Opera''); } M= M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, ''-?'']; if((tem= ua.match(/version//(/d+)/i))!= null) M.splice(1, 1, tem[1]); return M.join('' ''); })(); console.log(navigator.sayswho); // outputs: `Chrome 62`


Quiero compartir este código que escribí para el problema que tenía que resolver. Fue probado en la mayoría de los principales navegadores y funciona como un encanto, para mí!

Puede parecer que este código es muy similar al de las otras respuestas, pero se modificó para que pueda usarlo en el objeto del navegador en el jQuery que recientemente me faltó, por supuesto, es una combinación de los códigos anteriores, con pequeñas mejoras. Mi parte la hice:

(function($, ua){ var M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=//))//?/s*(/d+)/i) || [], tem, res; if(/trident/i.test(M[1])){ tem = //brv[ :]+(/d+)/g.exec(ua) || []; res = ''IE '' + (tem[1] || ''''); } else if(M[1] === ''Chrome''){ tem = ua.match(//b(OPR|Edge)//(/d+)/); if(tem != null) res = tem.slice(1).join('' '').replace(''OPR'', ''Opera''); else res = [M[1], M[2]]; } else { M = M[2]? [M[1], M[2]] : [navigator.appName, navigator.appVersion, ''-?'']; if((tem = ua.match(/version//(/d+)/i)) != null) M = M.splice(1, 1, tem[1]); res = M; } res = typeof res === ''string''? res.split('' '') : res; $.browser = { name: res[0], version: res[1], msie: /msie|ie/i.test(res[0]), firefox: /firefox/i.test(res[0]), opera: /opera/i.test(res[0]), chrome: /chrome/i.test(res[0]), edge: /edge/i.test(res[0]) } })(!!jQuery? jQuery : window.$, navigator.userAgent); console.log($.browser.name, $.browser.version, $.browser.msie); // if IE 11 output is: IE 11 true



jQuery puede manejar esto bastante bien ( jQuery.browser )

var ua = $.browser; if ( ua.mozilla && ua.version.slice(0,3) == "1.9" ) { alert( "Do stuff for firefox 3" ); }

EDITAR: Como Joshua escribió en su comentario a continuación, la propiedad jQuery.browser ya no es compatible con jQuery desde la versión 1.9 (lea las notas de la versión jQuery 1.9 para más detalles). El equipo de desarrollo de jQuery recommends utilizar un enfoque más completo como adaptar la interfaz de usuario con la biblioteca Modernizr .


Esta página parece tener un fragmento bastante bueno que solo usa la propiedad appString y appVersion como último recurso, ya que afirma que no son confiables con ciertos navegadores. El código en la página es el siguiente:

var nVer = navigator.appVersion; var nAgt = navigator.userAgent; var browserName = navigator.appName; var fullVersion = ''''+parseFloat(navigator.appVersion); var majorVersion = parseInt(navigator.appVersion,10); var nameOffset,verOffset,ix; // In Opera 15+, the true version is after "OPR/" if ((verOffset=nAgt.indexOf("OPR/"))!=-1) { browserName = "Opera"; fullVersion = nAgt.substring(verOffset+4); } // In older Opera, the true version is after "Opera" or after "Version" else if ((verOffset=nAgt.indexOf("Opera"))!=-1) { browserName = "Opera"; fullVersion = nAgt.substring(verOffset+6); if ((verOffset=nAgt.indexOf("Version"))!=-1) fullVersion = nAgt.substring(verOffset+8); } // In MSIE, the true version is after "MSIE" in userAgent else if ((verOffset=nAgt.indexOf("MSIE"))!=-1) { browserName = "Microsoft Internet Explorer"; fullVersion = nAgt.substring(verOffset+5); } // In Chrome, the true version is after "Chrome" else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) { browserName = "Chrome"; fullVersion = nAgt.substring(verOffset+7); } // In Safari, the true version is after "Safari" or after "Version" else if ((verOffset=nAgt.indexOf("Safari"))!=-1) { browserName = "Safari"; fullVersion = nAgt.substring(verOffset+7); if ((verOffset=nAgt.indexOf("Version"))!=-1) fullVersion = nAgt.substring(verOffset+8); } // In Firefox, the true version is after "Firefox" else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) { browserName = "Firefox"; fullVersion = nAgt.substring(verOffset+8); } // In most other browsers, "name/version" is at the end of userAgent else if ( (nameOffset=nAgt.lastIndexOf('' '')+1) < (verOffset=nAgt.lastIndexOf(''/'')) ) { browserName = nAgt.substring(nameOffset,verOffset); fullVersion = nAgt.substring(verOffset+1); if (browserName.toLowerCase()==browserName.toUpperCase()) { browserName = navigator.appName; } } // trim the fullVersion string at semicolon/space if present if ((ix=fullVersion.indexOf(";"))!=-1) fullVersion=fullVersion.substring(0,ix); if ((ix=fullVersion.indexOf(" "))!=-1) fullVersion=fullVersion.substring(0,ix); majorVersion = parseInt(''''+fullVersion,10); if (isNaN(majorVersion)) { fullVersion = ''''+parseFloat(navigator.appVersion); majorVersion = parseInt(navigator.appVersion,10); } document.write('''' +''Browser name = ''+browserName+''<br>'' +''Full version = ''+fullVersion+''<br>'' +''Major version = ''+majorVersion+''<br>'' +''navigator.appName = ''+navigator.appName+''<br>'' +''navigator.userAgent = ''+navigator.userAgent+''<br>'' )


<script type="text/javascript"> var version = navigator.appVersion; alert(version); </script>


function BrowserCheck() { var N= navigator.appName, ua= navigator.userAgent, tem; var M= ua.match(/(opera|chrome|safari|firefox|msie|trident)//?/s*(/.?/d+(/./d+)*)/i); if(M && (tem= ua.match(/version//([/./d]+)/i))!= null) {M[2]=tem[1];} M= M? [M[1], M[2]]: [N, navigator.appVersion,''-?'']; return M; }

Esto devolverá una matriz, el primer elemento es el nombre del navegador, el segundo elemento es el número de versión completo en formato de cadena.


var nVer = navigator.appVersion; var nAgt = navigator.userAgent; var browserName = navigator.appName; var fullVersion = ''''+parseFloat(navigator.appVersion); var majorVersion = parseInt(navigator.appVersion,10); var nameOffset,verOffset,ix; // In Opera, the true version is after "Opera" or after "Version" if ((verOffset=nAgt.indexOf("Opera"))!=-1) { browserName = "Opera"; fullVersion = nAgt.substring(verOffset+6); if ((verOffset=nAgt.indexOf("Version"))!=-1) fullVersion = nAgt.substring(verOffset+8); } // In MSIE, the true version is after "MSIE" in userAgent else if ((verOffset=nAgt.indexOf("MSIE"))!=-1) { browserName = "Microsoft Internet Explorer"; fullVersion = nAgt.substring(verOffset+5); } // In Chrome, the true version is after "Chrome" else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) { browserName = "Chrome"; fullVersion = nAgt.substring(verOffset+7); } // In Safari, the true version is after "Safari" or after "Version" else if ((verOffset=nAgt.indexOf("Safari"))!=-1) { browserName = "Safari"; fullVersion = nAgt.substring(verOffset+7); if ((verOffset=nAgt.indexOf("Version"))!=-1) fullVersion = nAgt.substring(verOffset+8); } // In Firefox, the true version is after "Firefox" else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) { browserName = "Firefox"; fullVersion = nAgt.substring(verOffset+8); } // In most other browsers, "name/version" is at the end of userAgent else if ( (nameOffset=nAgt.lastIndexOf('' '')+1) < (verOffset=nAgt.lastIndexOf(''/'')) ) { browserName = nAgt.substring(nameOffset,verOffset); fullVersion = nAgt.substring(verOffset+1); if (browserName.toLowerCase()==browserName.toUpperCase()) { browserName = navigator.appName; } } // trim the fullVersion string at semicolon/space if present if ((ix=fullVersion.indexOf(";"))!=-1) fullVersion=fullVersion.substring(0,ix); if ((ix=fullVersion.indexOf(" "))!=-1) fullVersion=fullVersion.substring(0,ix); majorVersion = parseInt(''''+fullVersion,10); if (isNaN(majorVersion)) { fullVersion = ''''+parseFloat(navigator.appVersion); majorVersion = parseInt(navigator.appVersion,10); } document.write('''' +''Browser name = ''+browserName+''<br>'' +''Full version = ''+fullVersion+''<br>'' +''Major version = ''+majorVersion+''<br>'' +''navigator.appName = ''+navigator.appName+''<br>'' +''navigator.userAgent = ''+navigator.userAgent+''<br>'' )

Vea la demostración aquí .. http://jsfiddle.net/hw4jM/3/


var nVer = navigator.appVersion; var nAgt = navigator.userAgent; var browserName = navigator.appName; var fullVersion = '''' + parseFloat(navigator.appVersion); var majorVersion = parseInt(navigator.appVersion, 10); var nameOffset, verOffset, ix; // In Opera 15+, the true version is after "OPR/" if ((verOffset = nAgt.indexOf("OPR/")) != -1) { browserName = "Opera"; fullVersion = nAgt.substring(verOffset + 4); } // In older Opera, the true version is after "Opera" or after "Version" else if ((verOffset = nAgt.indexOf("Opera")) != -1) { browserName = "Opera"; fullVersion = nAgt.substring(verOffset + 6); if ((verOffset = nAgt.indexOf("Version")) != -1) fullVersion = nAgt.substring(verOffset + 8); } // In MSIE, the true version is after "MSIE" in userAgent else if ((verOffset = nAgt.indexOf("MSIE")) != -1) { browserName = "Microsoft Internet Explorer"; fullVersion = nAgt.substring(verOffset + 5); } // In Chrome, the true version is after "Chrome" else if ((verOffset = nAgt.indexOf("Chrome")) != -1) { browserName = "Google Chrome"; fullVersion = nAgt.substring(verOffset + 7); } // In Safari, the true version is after "Safari" or after "Version" else if ((verOffset = nAgt.indexOf("Safari")) != -1) { browserName = "Safari"; fullVersion = nAgt.substring(verOffset + 7); if ((verOffset = nAgt.indexOf("Version")) != -1) fullVersion = nAgt.substring(verOffset + 8); } // In Firefox, the true version is after "Firefox" else if ((verOffset = nAgt.indexOf("Firefox")) != -1) { browserName = "Mozilla Firefox"; fullVersion = nAgt.substring(verOffset + 8); } // In most other browsers, "name/version" is at the end of userAgent else if ((nameOffset = nAgt.lastIndexOf('' '') + 1) < (verOffset = nAgt.lastIndexOf(''/''))) { browserName = nAgt.substring(nameOffset, verOffset); fullVersion = nAgt.substring(verOffset + 1); if (browserName.toLowerCase() == browserName.toUpperCase()) { browserName = navigator.appName; } } // trim the fullVersion string at semicolon/space if present if ((ix = fullVersion.indexOf('';'')) != -1) fullVersion = fullVersion.substring(0, ix); if ((ix = fullVersion.indexOf('' '')) != -1) fullVersion = fullVersion.substring(0, ix); majorVersion = parseInt('''' + fullVersion, 10); if (isNaN(majorVersion)) { fullVersion = '''' + parseFloat(navigator.appVersion); majorVersion = parseInt(navigator.appVersion, 10); }


var ua = navigator.userAgent; if (/Firefox///.test(ua)) var Firefox = /Firefox//([0-9/.A-z]+)/.exec(ua)[1];