Changeset 2482


Ignore:
Timestamp:
09/20/2008 01:20:26 PM (7 years ago)
Author:
fredck
Message:

Added the browser version to CKEDITOR.env.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • CKEditor/branches/prototype/_source/core/env.js

    r2371 r2482  
    9494                env.gecko = ( navigator.product == 'Gecko' && !env.webkit && !env.opera );
    9595
     96                var version = 0;
     97
     98                // Internet Explorer 6.0+
     99                if ( env.ie )
     100                        version = parseFloat( agent.match( /msie (\d+)/ )[1] );
     101
     102                // Gecko.
     103                if ( env.gecko )
     104                {
     105                        var geckoRelease = agent.match( /rv:([\d\.]+)/ );
     106                        if ( geckoRelease )
     107                        {
     108                                geckoRelease = geckoRelease[1].split( '.' );
     109                                version = geckoRelease[0] * 10000 + ( geckoRelease[1] || 0 ) * 100 + ( geckoRelease[2] || 0 );
     110                        }
     111                }
     112
     113                // Opera 9.50+
     114                if ( env.opera )
     115                        version = parseFloat( opera.version() );
     116
     117                // Adobe AIR 1.0+
     118                // Checked before Safari because AIR have the WebKit rich text editor
     119                // features from Safari 3.0.4, but the version reported is 420.
     120                if ( env.air )
     121                        version = parseFloat( agent.match( / adobeair\/(\d+)/ )[1] );
     122
     123                // WebKit 522+ (Safari 3+)
     124                if ( env.webkit )
     125                        version = parseFloat( agent.match( / applewebkit\/(\d+)/ )[1] );
     126
     127                /**
     128                 * Contains the browser version.
     129                 *
     130                 * For gecko based browsers (like Firefox) it contains the revision
     131                 * number with first three parts concatenated with a padding zero
     132                 * (e.g. for revision 1.9.0.2 we have 10900).
     133                 *
     134                 * For webkit based browser (like Safari and Chrome) it contains the
     135                 * WebKit build version (e.g. 522).
     136                 * @name CKEDITOR.env.version
     137                 * @type Boolean
     138                 * @example
     139                 * if ( CKEDITOR.env.ie && <b>CKEDITOR.env.version</b> <= 6 )
     140                 *     alert( "Ouch!" );
     141                 */
     142                env.version = version;
     143
    96144                /**
    97145                 * Indicates that CKEditor is running on a compatible browser.
     
    102150                 *     alert( "Your browser is pretty cool!" );
    103151                 */
    104                 env.isCompatible = (function()
    105                 {
    106                         // Internet Explorer 6.0+
    107                         if ( env.ie )
    108                                 return ( agent.match( /msie (\d+)/ )[1] >= 6 );
    109 
    110                         // Gecko.
    111                         if ( env.gecko )
    112                         {
    113                                 var geckoRelease = agent.match( /rv:([\d\.]+)/ );
    114                                 if ( !geckoRelease )
    115                                         return false;
    116                                 geckoRelease = geckoRelease[1].split( '.' );
    117                                 geckoRelease = geckoRelease[0] * 10000 + ( geckoRelease[1] || 0 ) * 100 + ( geckoRelease[2] || 0 );
    118                                 return geckoRelease >= 10801;
    119                         }
    120 
    121                         // Opera 9.50+
    122                         if ( env.opera )
    123                                 return parseFloat( opera.version() ) >= 9.5;
    124 
    125                         // Adobe AIR 1.0+
    126                         // Checked before Safari because AIR have the WebKit rich text editor
    127                         // features from Safari 3.0.4, but the version reported is 420.
    128                         if ( env.air )
    129                                 return ( agent.match( / adobeair\/(\d+)/ )[1] >= 1 );
    130 
    131                         // WebKit 522+ (Safari 3+)
    132                         if ( env.webkit )
    133                                 return ( agent.match( / applewebkit\/(\d+)/ )[1] >= 522 );
    134 
    135                         return false;
    136                 })();
     152                env.isCompatible =
     153                        ( env.ie && version >= 6 ) ||
     154                        ( env.gecko && version >= 10801 ) ||
     155                        ( env.opera && version >= 9.5 ) ||
     156                        ( env.air && version >= 1 ) ||
     157                        ( env.webkit && version >= 522 ) ||
     158                        false;
    137159
    138160                return env;
Note: See TracChangeset for help on using the changeset viewer.
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy