css_browser_selector icon indicating copy to clipboard operation
css_browser_selector copied to clipboard

Non-minified version

Open joakim opened this issue 14 years ago • 0 comments

First off all, thanks for the smart script :)

I've just ported it to PHP for a Drupal module (I know about Bastian Allgeier's PHP version, but it wasn't up to date with your latest changes and I wanted to give it a try). To understand the script I had to untangle the one line of JS, which was a bit painful.

Would it be possible to also provide a non-minified version of the script?

For example, here is my untangled version of 0.4.0:

function css_browser_selector(u) {
  var ua = u.toLowerCase(),
  is = function(t) {
    return ua.indexOf(t) > -1
  },
  g = 'gecko',
  w = 'webkit',
  s = 'safari',
  o = 'opera',
  m = 'mobile',
  h = document.documentElement,
  b = [
    (!(/opera|webtv/i.test(ua)) && /msie\s(\d)/.test(ua)) ? ('ie ie' + RegExp.$1)
    : is('firefox/2') ? g + ' ff2'
    : is('firefox/3.5') ? g + ' ff3 ff3_5'
    : is('firefox/3.6') ? g + ' ff3 ff3_6'
    : is('firefox/3') ? g + ' ff3'
    : is('gecko/') ? g
    : is('opera') ? o + (
      /version\/(\d+)/.test(ua) ? ' ' + o + RegExp.$1
      : (
        /opera(\s|\/)(\d+)/.test(ua) ? ' ' + o + RegExp.$2
        : ''
      )
    )
    : is('konqueror') ? 'konqueror'
    : is('blackberry') ? m + ' blackberry'
    : is('android') ? m + ' android'
    : is('chrome') ? w + ' chrome'
    : is('iron') ? w + ' iron'
    : is('applewebkit/') ? w + ' ' + s + (
      /version\/(\d+)/.test(ua) ? ' ' + s + RegExp.$1
      : ''
    )
    : is('mozilla/') ? g
    : '',
    is('j2me') ? m + ' j2me'
    : is('iphone') ? m + ' iphone'
    : is('ipod') ? m + ' ipod'
    : is('ipad') ? m + ' ipad'
    : is('mac') ? 'mac'
    : is('darwin') ? 'mac'
    : is('webtv') ? 'webtv'
    : is('win') ? 'win' + (
      is('windows nt 6.0') ? ' vista'
      : ''
    )
    : is('freebsd') ? 'freebsd'
    : (is('x11') || is('linux')) ? 'linux'
    : '',
    'js'
  ];
  c = b.join(' ');
  h.className += ' ' + c;
  return c;
};
css_browser_selector(navigator.userAgent);

Much more readable :)

joakim avatar Nov 27 '10 21:11 joakim