diff options
-rw-r--r-- | jquery/jquery.browser.js | 267 | ||||
-rw-r--r-- | jquery/jquery.browser.min.js | 10 |
2 files changed, 179 insertions, 98 deletions
diff --git a/jquery/jquery.browser.js b/jquery/jquery.browser.js index 3bb26d7..223eca6 100644 --- a/jquery/jquery.browser.js +++ b/jquery/jquery.browser.js @@ -1,112 +1,193 @@ /*! - * jQuery Browser Plugin v0.0.6 + * jQuery Browser Plugin 0.1.0 * https://github.com/gabceb/jquery-browser-plugin * - * Original jquery-browser code Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors + * Original jquery-browser code Copyright 2005, 2015 jQuery Foundation, Inc. and other contributors * http://jquery.org/license * - * Modifications Copyright 2013 Gabriel Cebrian + * Modifications Copyright 2015 Gabriel Cebrian * https://github.com/gabceb * * Released under the MIT license * - * Date: 2013-07-29T17:23:27-07:00 + * Date: 05-07-2015 */ - -(function( jQuery, window, undefined ) { +/*global window: false */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['jquery'], function ($) { + return factory($); + }); + } else if (typeof module === 'object' && typeof module.exports === 'object') { + // Node-like environment + module.exports = factory(require('jquery')); + } else { + // Browser globals + factory(window.jQuery); + } +}(function(jQuery) { "use strict"; - var matched, browser; - - jQuery.uaMatch = function( ua ) { + function uaMatch( ua ) { + // If an UA is not provided, default to the current browser UA. + if ( ua === undefined ) { + ua = window.navigator.userAgent; + } ua = ua.toLowerCase(); - var match = /(opr)[\/]([\w.]+)/.exec( ua ) || - /(chrome)[ \/]([\w.]+)/.exec( ua ) || - /(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) || - /(webkit)[ \/]([\w.]+)/.exec( ua ) || - /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) || - /(msie) ([\w.]+)/.exec( ua ) || - ua.indexOf("trident") >= 0 && /(rv)(?::| )([\w.]+)/.exec( ua ) || - ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) || - []; - - var platform_match = /(ipad)/.exec( ua ) || - /(iphone)/.exec( ua ) || - /(android)/.exec( ua ) || - /(windows phone)/.exec( ua ) || - /(win)/.exec( ua ) || - /(mac)/.exec( ua ) || - /(linux)/.exec( ua ) || - /(cros)/i.exec( ua ) || - []; - - return { - browser: match[ 3 ] || match[ 1 ] || "", - version: match[ 2 ] || "0", - platform: platform_match[ 0 ] || "" - }; - }; - - matched = jQuery.uaMatch( window.navigator.userAgent ); - browser = {}; - - if ( matched.browser ) { - browser[ matched.browser ] = true; - browser.version = matched.version; - browser.versionNumber = parseInt(matched.version); - } - - if ( matched.platform ) { - browser[ matched.platform ] = true; + var match = /(edge)\/([\w.]+)/.exec( ua ) || + /(opr)[\/]([\w.]+)/.exec( ua ) || + /(chrome)[ \/]([\w.]+)/.exec( ua ) || + /(iemobile)[\/]([\w.]+)/.exec( ua ) || + /(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) || + /(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) || + /(webkit)[ \/]([\w.]+)/.exec( ua ) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) || + /(msie) ([\w.]+)/.exec( ua ) || + ua.indexOf("trident") >= 0 && /(rv)(?::| )([\w.]+)/.exec( ua ) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) || + []; + + var platform_match = /(ipad)/.exec( ua ) || + /(ipod)/.exec( ua ) || + /(windows phone)/.exec( ua ) || + /(iphone)/.exec( ua ) || + /(kindle)/.exec( ua ) || + /(silk)/.exec( ua ) || + /(android)/.exec( ua ) || + /(win)/.exec( ua ) || + /(mac)/.exec( ua ) || + /(linux)/.exec( ua ) || + /(cros)/.exec( ua ) || + /(playbook)/.exec( ua ) || + /(bb)/.exec( ua ) || + /(blackberry)/.exec( ua ) || + []; + + var browser = {}, + matched = { + browser: match[ 5 ] || match[ 3 ] || match[ 1 ] || "", + version: match[ 2 ] || match[ 4 ] || "0", + versionNumber: match[ 4 ] || match[ 2 ] || "0", + platform: platform_match[ 0 ] || "" + }; + + if ( matched.browser ) { + browser[ matched.browser ] = true; + browser.version = matched.version; + browser.versionNumber = parseInt(matched.versionNumber, 10); + } + + if ( matched.platform ) { + browser[ matched.platform ] = true; + } + + // These are all considered mobile platforms, meaning they run a mobile browser + if ( browser.android || browser.bb || browser.blackberry || browser.ipad || browser.iphone || + browser.ipod || browser.kindle || browser.playbook || browser.silk || browser[ "windows phone" ]) { + browser.mobile = true; + } + + // These are all considered desktop platforms, meaning they run a desktop browser + if ( browser.cros || browser.mac || browser.linux || browser.win ) { + browser.desktop = true; + } + + // Chrome, Opera 15+ and Safari are webkit based browsers + if ( browser.chrome || browser.opr || browser.safari ) { + browser.webkit = true; + } + + // IE11 has a new token so we will assign it msie to avoid breaking changes + if ( browser.rv || browser.iemobile) { + var ie = "msie"; + + matched.browser = ie; + browser[ie] = true; + } + + // Edge is officially known as Microsoft Edge, so rewrite the key to match + if ( browser.edge ) { + delete browser.edge; + var msedge = "msedge"; + + matched.browser = msedge; + browser[msedge] = true; + } + + // Blackberry browsers are marked as Safari on BlackBerry + if ( browser.safari && browser.blackberry ) { + var blackberry = "blackberry"; + + matched.browser = blackberry; + browser[blackberry] = true; + } + + // Playbook browsers are marked as Safari on Playbook + if ( browser.safari && browser.playbook ) { + var playbook = "playbook"; + + matched.browser = playbook; + browser[playbook] = true; + } + + // BB10 is a newer OS version of BlackBerry + if ( browser.bb ) { + var bb = "blackberry"; + + matched.browser = bb; + browser[bb] = true; + } + + // Opera 15+ are identified as opr + if ( browser.opr ) { + var opera = "opera"; + + matched.browser = opera; + browser[opera] = true; + } + + // Stock Android browsers are marked as Safari on Android. + if ( browser.safari && browser.android ) { + var android = "android"; + + matched.browser = android; + browser[android] = true; + } + + // Kindle browsers are marked as Safari on Kindle + if ( browser.safari && browser.kindle ) { + var kindle = "kindle"; + + matched.browser = kindle; + browser[kindle] = true; + } + + // Kindle Silk browsers are marked as Safari on Kindle + if ( browser.safari && browser.silk ) { + var silk = "silk"; + + matched.browser = silk; + browser[silk] = true; + } + + // Assign the name and platform variable + browser.name = matched.browser; + browser.platform = matched.platform; + return browser; } - // These are all considered mobile platforms, meaning they run a mobile browser - if ( browser.android || browser.ipad || browser.iphone || browser[ "windows phone" ] ) { - browser.mobile = true; - } - - // These are all considered desktop platforms, meaning they run a desktop browser - if ( browser.cros || browser.mac || browser.linux || browser.win ) { - browser.desktop = true; - } + // Run the matching process, also assign the function to the returned object + // for manual, jQuery-free use if desired + window.jQBrowser = uaMatch( window.navigator.userAgent ); + window.jQBrowser.uaMatch = uaMatch; - // Chrome, Opera 15+ and Safari are webkit based browsers - if ( browser.chrome || browser.opr || browser.safari ) { - browser.webkit = true; + // Only assign to jQuery.browser if jQuery is loaded + if ( jQuery ) { + jQuery.browser = window.jQBrowser; } - // IE11 has a new token so we will assign it msie to avoid breaking changes - if ( browser.rv ) - { - var ie = "msie"; - - matched.browser = ie; - browser[ie] = true; - } - - // Opera 15+ are identified as opr - if ( browser.opr ) - { - var opera = "opera"; - - matched.browser = opera; - browser[opera] = true; - } - - // Stock Android browsers are marked as Safari on Android. - if ( browser.safari && browser.android ) - { - var android = "android"; - - matched.browser = android; - browser[android] = true; - } - - // Assign the name and platform variable - browser.name = matched.browser; - browser.platform = matched.platform; - - - jQuery.browser = browser; -})( jQuery, window );
\ No newline at end of file + return window.jQBrowser; +})); diff --git a/jquery/jquery.browser.min.js b/jquery/jquery.browser.min.js index eadf06e..491da7c 100644 --- a/jquery/jquery.browser.min.js +++ b/jquery/jquery.browser.min.js @@ -1,14 +1,14 @@ /*! - * jQuery Browser Plugin 0.0.6 + * jQuery Browser Plugin 0.1.0 * https://github.com/gabceb/jquery-browser-plugin * - * Original jquery-browser code Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors + * Original jquery-browser code Copyright 2005, 2015 jQuery Foundation, Inc. and other contributors * http://jquery.org/license * - * Modifications Copyright 2014 Gabriel Cebrian + * Modifications Copyright 2015 Gabriel Cebrian * https://github.com/gabceb * * Released under the MIT license * - * Date: 30-03-2014 - */!function(a,b){"use strict";var c,d;if(a.uaMatch=function(a){a=a.toLowerCase();var b=/(opr)[\/]([\w.]+)/.exec(a)||/(chrome)[ \/]([\w.]+)/.exec(a)||/(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[],c=/(ipad)/.exec(a)||/(iphone)/.exec(a)||/(android)/.exec(a)||/(windows phone)/.exec(a)||/(win)/.exec(a)||/(mac)/.exec(a)||/(linux)/.exec(a)||/(cros)/i.exec(a)||[];return{browser:b[3]||b[1]||"",version:b[2]||"0",platform:c[0]||""}},c=a.uaMatch(b.navigator.userAgent),d={},c.browser&&(d[c.browser]=!0,d.version=c.version,d.versionNumber=parseInt(c.version)),c.platform&&(d[c.platform]=!0),(d.android||d.ipad||d.iphone||d["windows phone"])&&(d.mobile=!0),(d.cros||d.mac||d.linux||d.win)&&(d.desktop=!0),(d.chrome||d.opr||d.safari)&&(d.webkit=!0),d.rv){var e="msie";c.browser=e,d[e]=!0}if(d.opr){var f="opera";c.browser=f,d[f]=!0}if(d.safari&&d.android){var g="android";c.browser=g,d[g]=!0}d.name=c.browser,d.platform=c.platform,a.browser=d}(jQuery,window);
\ No newline at end of file + * Date: 23-11-2015 + */!function(a){"function"==typeof define&&define.amd?define(["jquery"],function(b){return a(b)}):"object"==typeof module&&"object"==typeof module.exports?module.exports=a(require("jquery")):a(window.jQuery)}(function(a){"use strict";function b(a){void 0===a&&(a=window.navigator.userAgent),a=a.toLowerCase();var b=/(edge)\/([\w.]+)/.exec(a)||/(opr)[\/]([\w.]+)/.exec(a)||/(chrome)[ \/]([\w.]+)/.exec(a)||/(iemobile)[\/]([\w.]+)/.exec(a)||/(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[],c=/(ipad)/.exec(a)||/(ipod)/.exec(a)||/(windows phone)/.exec(a)||/(iphone)/.exec(a)||/(kindle)/.exec(a)||/(silk)/.exec(a)||/(android)/.exec(a)||/(win)/.exec(a)||/(mac)/.exec(a)||/(linux)/.exec(a)||/(cros)/.exec(a)||/(playbook)/.exec(a)||/(bb)/.exec(a)||/(blackberry)/.exec(a)||[],d={},e={browser:b[5]||b[3]||b[1]||"",version:b[2]||b[4]||"0",versionNumber:b[4]||b[2]||"0",platform:c[0]||""};if(e.browser&&(d[e.browser]=!0,d.version=e.version,d.versionNumber=parseInt(e.versionNumber,10)),e.platform&&(d[e.platform]=!0),(d.android||d.bb||d.blackberry||d.ipad||d.iphone||d.ipod||d.kindle||d.playbook||d.silk||d["windows phone"])&&(d.mobile=!0),(d.cros||d.mac||d.linux||d.win)&&(d.desktop=!0),(d.chrome||d.opr||d.safari)&&(d.webkit=!0),d.rv||d.iemobile){var f="msie";e.browser=f,d[f]=!0}if(d.edge){delete d.edge;var g="msedge";e.browser=g,d[g]=!0}if(d.safari&&d.blackberry){var h="blackberry";e.browser=h,d[h]=!0}if(d.safari&&d.playbook){var i="playbook";e.browser=i,d[i]=!0}if(d.bb){var j="blackberry";e.browser=j,d[j]=!0}if(d.opr){var k="opera";e.browser=k,d[k]=!0}if(d.safari&&d.android){var l="android";e.browser=l,d[l]=!0}if(d.safari&&d.kindle){var m="kindle";e.browser=m,d[m]=!0}if(d.safari&&d.silk){var n="silk";e.browser=n,d[n]=!0}return d.name=e.browser,d.platform=e.platform,d}return window.jQBrowser=b(window.navigator.userAgent),window.jQBrowser.uaMatch=b,a&&(a.browser=window.jQBrowser),window.jQBrowser});
\ No newline at end of file |