Created
March 2, 2017 19:02
-
-
Save tedw/931a87d49dd5627127a60d2aaa3b37f9 to your computer and use it in GitHub Desktop.
Add user agent classes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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