home > Browser detect

Super simple way to check if browser is most likely IE as they have their own ActiveX way of doing XMLHttpRequests.
    var isIE = (!window.XMLHttpRequest) ? true : false;
Full detect, this isn't 100% reliable as some browsers can spoof the userAgent string to make you think they are IE which can cause all kinds of problems. But this works reasonably well.
Show current Agent
Show detected browser

var sAgent = navigator.userAgent.toLowerCase();
var OS, browser, version;

if (checkBrowser('konqueror'))         browser = "Konqueror"
else if (checkBrowser('safari'))       browser = "Safari"
else if (checkBrowser('omniweb'))      browser = "OmniWeb"
else if (checkBrowser('opera'))        browser = "Opera"
else if (checkBrowser('webtv'))        browser = "WebTV";
else if (checkBrowser('icab'))         browser = "iCab"
else if (checkBrowser('msie'))         browser = "Internet Explorer"
else if (checkBrowser('firefox'))      browser = 'Firefox'
else if (!checkBrowser('compatible'))  browser = "Netscape Navigator"
else browser = "An unknown browser";

if (checkOS('linux'))    OS = "Linux"
else if (checkOS('x11')) OS = "Unix"
else if (checkOS('mac')) OS = "Mac"
else if (checkOS('win')) OS = "Windows"
else OS = "an unknown operating system";

function checkBrowser(sMatch)
{
    var bReturn = false;
    var oBrowserRegExp     = new RegExp(sMatch, 'gi');
    var oBrowserVersion    = new RegExp('.*' + sMatch + '[/\s]?([^;]*).*', 'gi');
    if (oBrowserRegExp.test(sAgent))
    {
        // alert(oBrowserVersion);
        version = sAgent.replace(oBrowserVersion, '$1');
        bReturn = true;
    }
    return bReturn;
}

function checkOS(sMatch)
{
    var bReturn = false;
    var oOSRegExp     = new RegExp(sMatch, 'i');
    if (oOSRegExp.test(sAgent))
    {
        bReturn = true;
    }
    return bReturn;
}

function showStuff()
{
    alert("OS: " + OS + "\nBrowser: " + browser + "\nVersion: " + version);
}
function showAgent()
{
    alert(sAgent);
}