Reputation: 6980
I'm totally new and just started javascript
and playing around with the basic alert()
I'm wondering how are we able to check what browser
is being used?
All are navigator object doesn't seem to give out what is wanted. If I use appName
it gives me out Netscape
in everything and I believe all know that.
Is there a way I can make the alert();
to check and show either just IE
, Firefox
, Chrome
, something like that?
If using userAgent
, it gives out too much info...
Upvotes: 1
Views: 5780
Reputation: 5578
Try with this:
if( navigator.userAgent.toLowerCase().indexOf('chrome') > -1){
// Google chrome
}
else if(navigator.userAgent.toLowerCase().indexOf('firefox') > -1){
// Firefox.
}
else if(navigator.userAgent.toLowerCase().indexOf('msie') > -1){
// MSIE
}
else if(navigator.userAgent.toLowerCase().indexOf('safari') > -1){
// Safari
}
Upvotes: 0
Reputation: 1226
Firstly, you shouldn't be trying to do browser detection, that being said, all browsers choose to implement both the userAgent
and the appName
however they want.
To correct this, you should try the following code
var BrowserDetect = {
init: function () {
this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
this.version = this.searchVersion(navigator.userAgent)
|| this.searchVersion(navigator.appVersion)
|| "an unknown version";
this.OS = this.searchString(this.dataOS) || "an unknown OS";
},
searchString: function (data) {
for (var i=0;i<data.length;i++) {
var dataString = data[i].string;
var dataProp = data[i].prop;
this.versionSearchString = data[i].versionSearch || data[i].identity;
if (dataString) {
if (dataString.indexOf(data[i].subString) != -1)
return data[i].identity;
}
else if (dataProp)
return data[i].identity;
}
},
searchVersion: function (dataString) {
var index = dataString.indexOf(this.versionSearchString);
if (index == -1) return;
return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
},
dataBrowser: [
{
string: navigator.userAgent,
subString: "Chrome",
identity: "Chrome"
},
{ string: navigator.userAgent,
subString: "OmniWeb",
versionSearch: "OmniWeb/",
identity: "OmniWeb"
},
{
string: navigator.vendor,
subString: "Apple",
identity: "Safari",
versionSearch: "Version"
},
{
prop: window.opera,
identity: "Opera",
versionSearch: "Version"
},
{
string: navigator.vendor,
subString: "iCab",
identity: "iCab"
},
{
string: navigator.vendor,
subString: "KDE",
identity: "Konqueror"
},
{
string: navigator.userAgent,
subString: "Firefox",
identity: "Firefox"
},
{
string: navigator.vendor,
subString: "Camino",
identity: "Camino"
},
{ // for newer Netscapes (6+)
string: navigator.userAgent,
subString: "Netscape",
identity: "Netscape"
},
{
string: navigator.userAgent,
subString: "MSIE",
identity: "Explorer",
versionSearch: "MSIE"
},
{
string: navigator.userAgent,
subString: "Gecko",
identity: "Mozilla",
versionSearch: "rv"
},
{ // for older Netscapes (4-)
string: navigator.userAgent,
subString: "Mozilla",
identity: "Netscape",
versionSearch: "Mozilla"
}
],
dataOS : [
{
string: navigator.platform,
subString: "Win",
identity: "Windows"
},
{
string: navigator.platform,
subString: "Mac",
identity: "Mac"
},
{
string: navigator.userAgent,
subString: "iPhone",
identity: "iPhone/iPod"
},
{
string: navigator.platform,
subString: "Linux",
identity: "Linux"
}
]
};
BrowserDetect.init();
This code was taken from quirksmode by the way.
To use this code you can just do the following
var version = BrowserDetect.version;
var OS = BBrowserDetect.OS;
var browser = BBrowserDetect.browser;
Upvotes: 2