Skip to content

Instantly share code, notes, and snippets.

@elgalu
Created June 3, 2014 20:45
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save elgalu/82929eeeef4a80e01835 to your computer and use it in GitHub Desktop.
Save elgalu/82929eeeef4a80e01835 to your computer and use it in GitHub Desktop.
Easily ask for current browser capability
browser.getCapabilities().then(function(s) {
var browserName, browserVersion;
var shortName, shortVersion;
var ie, ff, ch, sa;
var platform;
platform = s.caps_.platform;
browserName = s.caps_.browserName;
browserVersion = s.caps_.version;
shortVersion = browserVersion.split('.')[0];
ie = /i.*explore/.test(browserName);
ff = /firefox/.test(browserName);
ch = /chrome/.test(browserName);
sa = /safari/.test(browserName);
if (ie) {
shortName = 'ie';
} else if (ff) {
shortName = 'ff';
} else if (ch) {
shortName = 'ch';
} else if (sa) {
shortName = 'sa';
} else {
throw new Exception('Unsupported browser: '+browserName);
};
// Returns one of these: ['ch', 'ff', 'sa', 'ie']
browser.getShortBrowserName = function() {
return shortName;
};
// Returns one of these: ['ch33', 'ff27', 'sa7', 'ie11', 'ie10', 'ie9']
browser.getShortNameVersionAll = function() {
return shortName + shortVersion;
};
// Returns one of these: ['ch', 'ff', 'sa', 'ie11', 'ie10', 'ie9']
browser.getShortNameVersion = function() {
if (ie) {
return shortName + shortVersion;
} else {
return shortName;
};
};
// Return if current browser is IE, optionally specifying if it is a particular IE version
browser.isInternetExplorer = function(ver) {
if (ver == null) {
return ie;
} else {
return ie && ver.toString() === shortVersion;
}
};
browser.isSafari = function() {
return sa;
};
browser.isFirefox = function() {
return ff;
};
// Return if current browser is Chrome, optionally specifying if it is a particular Chrome version
browser.isChrome = function(ver) {
if (ver == null) {
return ch;
} else {
return ch && ver.toString() === shortVersion;
}
};
browser.inWindows = function() {
return /^WIN|XP/.test(platform);
};
browser.inOSX = function() {
return /^MAC/.test(platform);
};
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment