1/* 2 3jQuery Browser Plugin 4 * Version 2.3 5 * 2008-09-17 19:27:05 6 * URL: http://jquery.thewikies.com/browser 7 * Description: jQuery Browser Plugin extends browser detection capabilities and can assign browser selectors to CSS classes. 8 * Author: Nate Cavanaugh, Minhchau Dang, & Jonathan Neal 9 * Copyright: Copyright (c) 2008 Jonathan Neal under dual MIT/GPL license. 10 * JSLint: This javascript file passes JSLint verification. 11*//*jslint 12 bitwise: true, 13 browser: true, 14 eqeqeq: true, 15 forin: true, 16 nomen: true, 17 plusplus: true, 18 undef: true, 19 white: true 20*//*global 21 jQuery 22*/ 23 24(function ($) { 25 $.browserTest = function (a, z) { 26 var u = 'unknown', x = 'X', m = function (r, h) { 27 for (var i = 0; i < h.length; i = i + 1) { 28 r = r.replace(h[i][0], h[i][1]); 29 } 30 31 return r; 32 }, c = function (i, a, b, c) { 33 var r = { 34 name: m((a.exec(i) || [u, u])[1], b) 35 }; 36 37 r[r.name] = true; 38 39 r.version = (c.exec(i) || [x, x, x, x])[3]; 40 41 if (r.name.match(/safari/) && r.version > 400) { 42 r.version = '2.0'; 43 } 44 45 if (r.name === 'presto') { 46 r.version = ($.browser.version > 9.27) ? 'futhark' : 'linear_b'; 47 } 48 r.versionNumber = parseFloat(r.version, 10) || 0; 49 r.versionX = (r.version !== x) ? (r.version + '').substr(0, 1) : x; 50 r.className = r.name + r.versionX; 51 52 return r; 53 }; 54 55 a = (a.match(/Opera|Navigator|Minefield|KHTML|Chrome/) ? m(a, [ 56 [/(Firefox|MSIE|KHTML,\slike\sGecko|Konqueror)/, ''], 57 ['Chrome Safari', 'Chrome'], 58 ['KHTML', 'Konqueror'], 59 ['Minefield', 'Firefox'], 60 ['Navigator', 'Netscape'] 61 ]) : a).toLowerCase(); 62 63 $.browser = $.extend((!z) ? $.browser : {}, c(a, /(camino|chrome|firefox|netscape|konqueror|lynx|msie|opera|safari)/, [], /(camino|chrome|firefox|netscape|netscape6|opera|version|konqueror|lynx|msie|safari)(\/|\s)([a-z0-9\.\+]*?)(\;|dev|rel|\s|$)/)); 64 65 $.layout = c(a, /(gecko|konqueror|msie|opera|webkit)/, [ 66 ['konqueror', 'khtml'], 67 ['msie', 'trident'], 68 ['opera', 'presto'] 69 ], /(applewebkit|rv|konqueror|msie)(\:|\/|\s)([a-z0-9\.]*?)(\;|\)|\s)/); 70 71 $.os = { 72 name: (/(win|mac|linux|sunos|solaris|iphone)/.exec(navigator.platform.toLowerCase()) || [u])[0].replace('sunos', 'solaris') 73 }; 74 75 if (!z) { 76 $('body').addClass([$.os.name, $.browser.name.replace('ms', ''), $.browser.className.replace('ms', '')].join(' ')); 77 } 78 }; 79 $( document ).ready(function() { 80 $.browserTest(navigator.userAgent); 81 }); 82 83})(jQuery); 84 85
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.