Skip to content

Instantly share code, notes, and snippets.

@kmaglione
Created December 9, 2011 20:18
Show Gist options
  • Save kmaglione/1453120 to your computer and use it in GitHub Desktop.
Save kmaglione/1453120 to your computer and use it in GitHub Desktop.
framework.browser = {};
framework.browser.MSIE = "MSIE";
framework.browser.FIREFOX = "Firefox";
framework.browser.FLOCK = "Flock";
framework.browser.GOOGLE = "Google Inc.";
framework.browser.CHROME = "Chrome";
framework.browser.WINDOWS95 = "Windows 95";
framework.browser.WINDOWS98 = "Windows 98";
framework.browser.WINDOWS = "Windows";
framework.browser.MAC = "Mac";
framework.browser.TRIDENT = "Trident";
framework.browser.GECKO = "Gecko";
framework.browser.WEBCORE = "Webcore";
framework.browser.SAFARI = "Safari";
framework.browser.OPERA = "Opera";
framework.browser.WIN32 = "Win32";
framework.browser.IE = "Microsoft Internet Explorer";
framework.browser.NETSCAPE = "Netscape";
framework.browser.MACVERSION = 10.4;
framework.browser.APPLE = "Apple";
function BrowserType() {
var a = {};
a.initOS = function() {
if (navigator.platform.indexOf(framework.browser.WIN32) != -1) {
if (navigator.platform.indexOf(framework.browser.WINDOWS95) != -1) {
a.OS = framework.browser.WINDOWS95;
} else {
if (navigator.platform.indexOf(framework.browser.WINDOWS98) != -1) {
a.OS = framework.browser.WINDOWS98;
} else {
a.OS = framework.browser.WINDOWS;
}
}
}
if (navigator.platform.indexOf(framework.browser.MAC) != -1) {
if (/Mac([a-zA-Z\/\s]*)(\d+)[\_\.](\d+)/.test(navigator.userAgent)) {
var b = RegExp.$2 + "." + RegExp.$3;
var c = parseFloat(b);
a.OS = framework.browser.MAC + RegExp.$1 + c;
} else {
a.OS = framework.browser.MAC;
}
}
};
a.initBrowserFamily = function() {
var b = (document.getElementById && typeof(document.getElementById) == "object" && (document.fireEvent));
if (b) {
a.browserFamily = framework.browser.TRIDENT;
}
var d = (String.prototype.__defineGetter__ && !! window.crypto);
if (d) {
a.browserFamily = framework.browser.GECKO;
}
var c = ( !! document.implementation && !! document.implementation.createHTMLDocument && !document.fileCreatedDate && !! window.XMLHttpRequest && !window.opera);
if (c) {
a.browserFamily = framework.browser.WEBCORE;
}
};
a.initBrowser = function() {
if (navigator.appName == framework.browser.IE) {
a.browser = framework.browser.MSIE;
}
if (navigator.userAgent.indexOf(framework.browser.FIREFOX) != -1 && navigator.userAgent.indexOf(framework.browser.FLOCK) == -1) {
a.browser = framework.browser.FIREFOX;
}
if (navigator.vendor == framework.browser.GOOGLE && navigator.userAgent.indexOf(framework.browser.CHROME) != -1) {
a.browser = framework.browser.CHROME;
}
if (a.browserFamily == framework.browser.WEBCORE && navigator.vendor.indexOf(framework.browser.APPLE) != -1) {
a.browser = framework.browser.SAFARI;
}
if (window.opera) {
a.browser = framework.browser.OPERA;
}
if (navigator.userAgent.indexOf(framework.browser.NETSCAPE) != -1) {
a.browser = framework.browser.NETSCAPE;
}
};
a.initBrowserVersion = function() {
var c = "Version";
if (a.browser != framework.browser.SAFARI) {
c = a.browser;
}
var d = ".*" + c + "[\\/\\s](\\d+\\.\\d+).*";
var e = new RegExp(d);
if (e.test(navigator.userAgent)) {
var b = RegExp.$1;
a.version = b;
}
};
a.init = function() {
a.initOS();
a.initBrowserFamily();
a.initBrowser();
a.initBrowserVersion();
};
a.isIE7 = function() {
if (a.browser == framework.browser.MSIE && a.version == 7) {
return true;
}
return false;
};
a.isSafari = function() {
if (a.browser == framework.browser.SAFARI) {
return true;
}
return false;
};
a.isInternetExplorer = function() {
if (a.browser == framework.browser.MSIE) {
return true;
}
return false;
};
a.isFirefox = function() {
if (a.browser == framework.browser.FIREFOX) {
return true;
}
return false;
};
a.isNetscape = function() {
if (a.browser == framework.browser.NETSCAPE) {
return true;
}
return false;
};
a.isChrome = function() {
if (a.browser == framework.browser.CHROME) {
return true;
}
return false;
};
a.init();
return a;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment