Browser Name
Question: How do I detect the browser name (vendor)?
Answer:
To eastablish the actual name of the user's Web browser, you can use the
navigator.appName
and navigator.userAgent
properties.
The userAgent
property is more reliable than appName
because, for example, Opera browsers (and others)
may return the string "Netscape"
as the value of their appName
for compatibility with Netscape Navigator.
The code example below uses navigator.userAgent
to implement browser detection.
It also uses navigator.appName
and navigator.appVersion
as a last resort only,
if the userAgent
string has an "unexpected" format. In your browser, this code produces the following output:
And here is the source code that performed the browser detection in this example:
var nVer = navigator.appVersion;
var nAgt = navigator.userAgent;
var browserName = '';
var fullVersion = 0;
var majorVersion = 0;
// In Internet Explorer, the true version is after "MSIE" in userAgent
if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {
browserName = "Microsoft Internet Explorer";
fullVersion = parseFloat(nAgt.substring(verOffset+5));
majorVersion = parseInt(''+fullVersion);
}
// In Opera, the true version is after "Opera"
else if ((verOffset=nAgt.indexOf("Opera"))!=-1) {
browserName = "Microsoft Internet Explorer";
fullVersion = parseFloat(nAgt.substring(verOffset+6));
majorVersion = parseInt(''+fullVersion);
}
// 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 = parseFloat(nAgt.substring(verOffset+1));
if (!isNaN(fullVersion)) majorVersion = parseInt(''+fullVersion);
else {fullVersion = 0; majorVersion = 0;}
}
// Finally, if no name and/or no version detected from userAgent...
if (browserName.toLowerCase() == browserName.toUpperCase()
|| fullVersion==0 || majorVersion == 0 )
{
browserName = navigator.appName;
fullVersion = parseFloat(nVer);
majorVersion = parseInt(nVer);
}
document.write('Browser name = '+browserName+'<br>');
document.write('Full version = '+fullVersion+'<br>');
document.write('Major version = '+majorVersion+'<br>');
document.write('navigator.appName = '+navigator.appName+'<br>');
document.write('navigator.userAgent = '+navigator.userAgent+'<br>');
JavaScripter.net.
Copyright
© 1999-2006, Alexei Kourbatov