Skip to content

Instantly share code, notes, and snippets.

@tedw
Created March 2, 2017 19:02
Show Gist options
  • Save tedw/931a87d49dd5627127a60d2aaa3b37f9 to your computer and use it in GitHub Desktop.
Save tedw/931a87d49dd5627127a60d2aaa3b37f9 to your computer and use it in GitHub Desktop.
Add user agent classes
// Add user agent classes
(function() {
var ua = navigator.userAgent,
d = document.documentElement,
classes = d.className;
// Replace 'no-js' class name with 'js'
classes = classes.replace('no-js','js');
// Detect iOS (needed to disable zoom on form elements)
// http://stackoverflow.com/questions/9038625/detect-if-device-is-ios/9039885#9039885
if ( /iPad|iPhone|iPod/.test(ua) && !window.MSStream ) {
classes += ' ua-ios';
// Add class for version of iOS
var matches = ua.match(/((\d+_?){2,3})\slike\sMac\sOS\sX/);
if ( matches ) {
classes += ' ua-ios-' + matches[1];// e.g. ua-ios-7_0_2
}
// Add class for Twitter app
if ( /Twitter/.test(ua) ) {
classes += ' ua-ios-twitter';
}
// Add class for Chrome browser
if ( /CriOS/.test(ua) ) {
classes += ' ua-ios-chrome';
}
}
// Detect Android (needed to disable print links on old devices)
// http://www.ainixon.me/how-to-detect-android-version-using-js/
if ( /Android/.test(ua) ) {
var matches = ua.match(/Android\s([0-9\.]*)/);
classes += matches ? ' ua-aos ua-aos-' + matches[1].replace(/\./g,'_') : ' ua-aos';
}
// Detect webOS (needed to disable optimizeLegibility)
if ( /webOS|hpwOS/.test(ua) ) {
classes += ' ua-webos';
}
// Detect Samsung Internet browser
if ( /SamsungBrowser/.test(ua) ) {
classes += ' ua-samsung';
}
// Add classes
d.className = classes;
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment