Blog

JavaScript to Determine If on Apple Device (works on IE 10 and above)
Posted on July 23, 2020 in Apple, JavaScript by Matt Jennings

(function() {
   // Detect if Apple device - see:
   // https://stackoverflow.com/questions/19877924/what-is-the-list-of-possible-values-for-navigator-platform-as-of-today

   // Polyfill for array.includes() since that doesn't exist in IE11 - see:
   // http://www.sharmaprakash.com.np/javascript/ie-alternative-to-inludes/
   var deviceDetect = navigator.platform;
   var appleDevicesArr = ['MacIntel', 'MacPPC', 'Mac68K', 'Macintosh', 'iPhone', 'iPod', 'iPad', 'iPhone Simulator', 'iPod Simulator', 'iPad Simulator', 'Pike v7.6 release 92', 'Pike v7.8 release 517'];
   var htmlTag = document.querySelector('html');
   function includes(container, value) {
     var returnValue = false;
     var pos = container.indexOf(value);
     if (pos >= 0) {
       returnValue = true;
     }
     return returnValue;
   }
   // If on Apple devices or
   // if on Windows machine and query script equals os=mac
   // Add classes to HTML tag (<html class="apple-device...">...</html>)
   // then in WordPress admin add CSS to target Apple devices
   if(includes(appleDevicesArr, deviceDetect)) {
     htmlTag.classList.add('apple-device');
   }
   // Else if on non-Apple device (i.e. Windows, Android, or Linux)
   // display Windows computer banner image
   else {
     htmlTag.classList.add('non-apple-device');
   }
 })();

Leave a Reply