1/* 2 3jQuery Browser Plugin 4 * Version 1.2.0 5 * 2008-05-26 14:39:29 6 * URL: http://jquery.thewikies.com/browser 7 * Description: jQuery Browser Plugin extends browser detection capabilities and can implements CSS browser selectors. 8 * Author: Nate Cavanaugh, Minhchau Dang, & Jonathan Neal 9 * Copyright: Copyright (c) 2008 Jonathan Neal under dual MIT/GPL license. 10 11*/ 12 13(function($) { 14 15 // Define whether Browser Selectors will be added automatically; set as false to disable. 16 var addSelectors = true; 17 18 // Define Navigator Properties. 19 var p = navigator.platform; 20 var u = navigator.userAgent; 21 var b = /(Firefox|Opera|Safari|KDE|iCab|Flock|IE)/.exec(u); 22 var os = /(Win|Mac|Linux|iPhone|Sun|Solaris)/.exec(p); 23 var versionDefaults = [0,0]; 24 25 b = (!b || !b.length) ? (/(Mozilla)/.exec(u) || ['']) : b; 26 os = (!os || !os.length) ? [''] : os; 27 28 // Define Browser Properties. 29 var o = jQuery.extend($.browser, { 30 31 // Define the rendering client 32 gecko: /Gecko/.test(u) && !/like Gecko/.test(u), 33 webkit: /WebKit/.test(u), 34 35 // Define the browser 36 aol: /America Online Browser/.test(u), 37 camino: /Camino/.test(u), 38 firefox: /Firefox/.test(u), 39 flock: /Flock/.test(u), 40 icab: /iCab/.test(u), 41 konqueror: /KDE/.test(u), 42 mozilla: /mozilla/.test(u), 43 ie: /MSIE/.test(u), 44 netscape: /Netscape/.test(u), 45 opera: /Opera/.test(u), 46 safari: /Safari/.test(u), 47 browser: b[0].toLowerCase(), 48 49 // Define the opperating system 50 win: /Win/.test(p), 51 mac: /Mac/.test(p), 52 linux: /Linux/.test(p), 53 iphone: /iPhone/.test(p), 54 sun: /Solaris|SunOS/.test(p), 55 os: os[0].toLowerCase(), 56 57 // Define the classic navigator properties 58 platform: p, 59 agent: u, 60 61 // Define the 'addSelectors' function which adds Browser Selectors to a tag; by default <HTML>. 62 addSelectors: function(e) { 63 jQuery(e || 'html').addClass(o.selectors); 64 }, 65 66 // Define the 'removeSelectors' function which removes Browser Selectors to a tag; by default <HTML>. 67 removeSelectors: function(e) { 68 jQuery(e || 'html').addClass(o.selectors); 69 } 70 71 }); 72 73 // Define the Browser Client Version. 74 o.version = { 75 string: (o.msie) 76 ? (/MSIE ([^;]+)/.exec(u) || versionDefaults)[1] 77 : (o.firefox) 78 ? (/Firefox\/(.+)/.exec(u) || versionDefaults)[1] 79 : (o.safari) 80 ? (/Version\/([^\s]+)/.exec(u) || versionDefaults)[1] 81 : (o.opera) 82 ? (/Opera\/([^\s]+)/.exec(u) || versionDefaults)[1] 83 : 'undefined' }; 84 o.version.number = parseFloat(o.version.string) || versionDefaults[0]; 85 o.version.major = /([^\.]+)/.exec(o.version.string)[1]; 86 87 // Define the Browser with Client Version. 88 o[o.browser + o.version.major] = true; 89 90 // Define the Rendering Client. 91 o.renderer = (o.gecko) ? 'gecko' : (o.webkit) ? 'webkit' : ''; 92 93 // Define the selector. 94 o.selectors = [o.renderer, o.browser, o.browser + o.version.major, o.os, 'js'].join(' '); 95 96 // Run the 'addSelectors' Function if the 'addSelectors' Variable is set as true. 97 if (addSelectors) o.addSelectors(); 98 99}(jQuery));
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.