Browser detection
Testing my Browser object
by SmokeyPHP
JavaScript
BrowserFuncs = {
get: function(withVer) {
if(typeof withVer !== 'boolean') withVer = false;
var agent = this.agentStr();
var name = this.appName();
if(name === 'Netscape')
{
var agentName = agent.match(/( Chrome| Safari| Firefox)\//)[1];
name = agentName;
}
name = name.replace(/^\s*(.+)\s*$/,'$1');
var verMatchRgx = new RegExp(name+'( |/)([0-9\.]+)');
var version1 = agent.match(verMatchRgx);
var version2 = agent.match(/Version\/([0-9\.]+)/);
version2 = version2===null || typeof version2[1] !== 'string' ? false : version2[1];
var version = false;
if(version2 === false && (version1 === null || typeof version1[2] !== 'string'))
{
version = agent.match(/MSIE ([0-9]+)/);
if(version === null || typeof version[1] !== 'string') version = false;
else version = version[1];
}
else
{
version = version2!==false ? version2 : version1[2];
}
return name + (withVer ? ' '+version : '');
}
,getVer: function() {
var browser = this.get(true);
browser = browser.split(' ');
return browser.slice(-1)[0];
}
,agentStr: function() {
return navigator.userAgent;
}
,appName: function() {
return navigator.appName;
}
,isModern: function() {
var agent = this.agentStr();
return agent.match(/^(Mozilla\/[5-9]|Opera)/)!==null;
}
,getWidth: function() {
return document.documentElement.clientWidth;
}
,getHeight: function() {
return document.documentElement.clientHeight;
}
,getRes: function() {
return this.getWidth()+' x '+this.getHeight();
}
,getScrollPos: function() {
var doc = document.documentElement;
var body = document.body;
return {left:(doc && doc.scrollLeft || body && body.scrollLeft || 0),top:(doc && doc.scrollTop || body && body.scrollTop || 0)};
}
,getScrollTop: function() {
return BrowserFuncs.getScrollPos().top;
}
,getScrollLeft: function() {
return BrowserFuncs.getScrollPos().left;
}
};
Browser = {
isIE: BrowserFuncs.get() === 'Microsoft Internet Explorer'
,name:...