Skip to content

Instantly share code, notes, and snippets.

@alexandrevicenzi
Forked from iwanbk/browserdetect.js
Last active August 1, 2020 22:11
Show Gist options
  • Save alexandrevicenzi/2b3ec12bd9668017719a to your computer and use it in GitHub Desktop.
Save alexandrevicenzi/2b3ec12bd9668017719a to your computer and use it in GitHub Desktop.
Browser detection script from http://www.quirksmode.org/js/detect.html
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Which Browser?</title>
</head>
<body>
<p>You are using <span id="browser"></span> <span id="version"></span> on <span id="os"></span></p>
<script type="text/javascript" src="browserdetect.js"></script>
<script type="text/javascript">
document.getElementById("os").innerText = BrowserDetect.OS;
document.getElementById("browser").innerText = BrowserDetect.browser;
document.getElementById("version").innerText = BrowserDetect.version;
</script>
</body>
</html>
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: "OPR",
identity: "Opera",
versionSearch: "OPR"
}, {
string: navigator.userAgent,
subString: "Vivaldi",
identity: "Vivaldi"
}, {
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"
}, { // old Opera
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: "Internet Explorer",
versionSearch: "MSIE"
}, {
string: navigator.userAgent,
subString: ".NET4",
identity: "Microsoft Edge",
versionSearch: "rv"
}, {
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.userAgent,
subString: "Windows Phone",
identity: "Windows Phone"
}, {
string: navigator.platform,
subString: "Win",
identity: "Windows"
}, {
string: navigator.platform,
subString: "Mac",
identity: "Mac"
}, {
string: navigator.userAgent,
subString: "iPhone",
identity: "iPhone/iPod"
}, {
string: navigator.userAgent,
subString: "Android",
identity: "Android"
}, {
string: navigator.platform,
subString: "Linux",
identity: "Linux"
}]
};
BrowserDetect.init();
@pirroncello
Copy link

How do I modify this to get the version of the OS (Windows and Mac) and if it is x32 or x64? Thank you

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment