I’ve written a Javascript browser detection function but I’d like to improve it with everyone else’s knowledge.
Problems:
You’ll notice that I’m assuming that a “Chrome 18” must be a “Maxthon 3” but of course that is not necessarily so!
How can we differentiate between Chrome 18 and Maxthon 3?
Similarly, how can we differentiate between Firefox and Sea Monkey?
And what about Lunar? Can we also detect that browser via navigator.userAgent?
Is there any other popular browser I’ve forgotten about?
Only pure Javascript solutions/suggestions please!
<!DOCTYPE html>
<script type="text/javascript">
function GetBrowser(){
var browser="";
var version=0;
if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
version=new Number(RegExp.$1);
browser="FireFox";} else {
if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){
version=new Number(RegExp.$1);
browser="Internet Explorer";} else {
if (/Opera[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
version=new Number(RegExp.$1);
browser="Opera";} else {
if (/Chrome[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
version=new Number(RegExp.$1);
if (version==18) {version=3; browser="Maxthon";} else {browser="Google Chrome"}} else {version=0; browser="Undetermined";}
}}}
return browser+' '+version;}
document.write(GetBrowser());
</script>
This is what I neded up with. I Corrected bugs in Opera and Safari version detections and added SeaMonkey.