X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=_source%2Fcore%2Fenv.js;h=61df9093023796bf7d40dfe606bd562bc6f82b6c;hb=refs%2Ftags%2Fv3.6.2;hp=a0ae46509761b114681c20bb95be00c757ae47dc;hpb=e371ddf8abcb89013e20e6d0dd746adec344d0e5;p=ckeditor.git
diff --git a/_source/core/env.js b/_source/core/env.js
index a0ae465..61df909 100644
--- a/_source/core/env.js
+++ b/_source/core/env.js
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
@@ -11,9 +11,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
if ( !CKEDITOR.env )
{
/**
- * Environment and browser information.
- * @namespace
- * @example
+ * @namespace Environment and browser information.
*/
CKEDITOR.env = (function()
{
@@ -69,10 +67,41 @@ if ( !CKEDITOR.env )
*/
mac : ( agent.indexOf( 'macintosh' ) > -1 ),
+ /**
+ * Indicates that CKEditor is running on a quirks mode environemnt.
+ * @type Boolean
+ * @example
+ * if ( CKEDITOR.env.quirks )
+ * alert( "Nooooo!" );
+ */
quirks : ( document.compatMode == 'BackCompat' ),
+ /**
+ * Indicates that CKEditor is running on a mobile like environemnt.
+ * @type Boolean
+ * @example
+ * if ( CKEDITOR.env.mobile )
+ * alert( "I'm running with CKEditor today!" );
+ */
mobile : ( agent.indexOf( 'mobile' ) > -1 ),
+ /**
+ * Indicates that CKEditor is running on Apple iPhone/iPad/iPod devices.
+ * @type Boolean
+ * @example
+ * if ( CKEDITOR.env.iOS )
+ * alert( "I like little apples!" );
+ */
+ iOS : /(ipad|iphone|ipod)/.test(agent),
+
+ /**
+ * Indicates that the browser has a custom domain enabled. This has
+ * been set with "document.domain".
+ * @returns {Boolean} "true" if a custom domain is enabled.
+ * @example
+ * if ( CKEDITOR.env.isCustomDomain() )
+ * alert( "I'm in a custom domain!" );
+ */
isCustomDomain : function()
{
if ( !this.ie )
@@ -83,7 +112,16 @@ if ( !CKEDITOR.env )
return domain != hostname &&
domain != ( '[' + hostname + ']' ); // IPv6 IP support (#5434)
- }
+ },
+
+ /**
+ * Indicates that page is running under an encrypted connection.
+ * @returns {Boolean} "true" if the page has an encrypted connection.
+ * @example
+ * if ( CKEDITOR.env.secure )
+ * alert( "I'm in SSL!" );
+ */
+ secure : location.protocol == 'https:'
};
/**
@@ -105,19 +143,44 @@ if ( !CKEDITOR.env )
version = parseFloat( agent.match( /msie (\d+)/ )[1] );
/**
- * Indicate IE8 browser.
+ * Indicates that CKEditor is running on Internet Explorer 8.
+ * @name CKEDITOR.env.ie8
+ * @type Boolean
+ * @example
+ * if ( CKEDITOR.env.ie8 )
+ * alert( "I'm on IE8!" );
*/
env.ie8 = !!document.documentMode;
/**
- * Indicte IE8 document mode.
+ * Indicates that CKEditor is running on Internet Explorer 8 on
+ * standards mode.
+ * @name CKEDITOR.env.ie8Compat
+ * @type Boolean
+ * @example
+ * if ( CKEDITOR.env.ie8Compat )
+ * alert( "Now I'm on IE8, for real!" );
*/
env.ie8Compat = document.documentMode == 8;
/**
+ * Indicates that CKEditor is running on Internet Explorer 9's standards mode.
+ * @name CKEDITOR.env.ie9Compat
+ * @type Boolean
+ * @example
+ * if ( CKEDITOR.env.ie9Compat )
+ * alert( "IE9, the beauty of the web!" );
+ */
+ env.ie9Compat = document.documentMode == 9;
+
+ /**
* Indicates that CKEditor is running on an IE7-like environment, which
* includes IE7 itself and IE8's IE7 document mode.
+ * @name CKEDITOR.env.ie7Compat
* @type Boolean
+ * @example
+ * if ( CKEDITOR.env.ie8Compat )
+ * alert( "I'm on IE7 or on an IE7 like IE8!" );
*/
env.ie7Compat = ( ( version == 7 && !document.documentMode )
|| document.documentMode == 7 );
@@ -125,13 +188,13 @@ if ( !CKEDITOR.env )
/**
* Indicates that CKEditor is running on an IE6-like environment, which
* includes IE6 itself and IE7 and IE8 quirks mode.
+ * @name CKEDITOR.env.ie6Compat
* @type Boolean
* @example
* if ( CKEDITOR.env.ie6Compat )
* alert( "I'm on IE6 or quirks mode!" );
*/
env.ie6Compat = ( version < 7 || env.quirks );
-
}
// Gecko.
@@ -160,12 +223,12 @@ if ( !CKEDITOR.env )
version = parseFloat( agent.match( / applewebkit\/(\d+)/ )[1] );
/**
- * Contains the browser version.
- *
+ * Contains the browser version.
+ *
* For gecko based browsers (like Firefox) it contains the revision
* number with first three parts concatenated with a padding zero
- * (e.g. for revision 1.9.0.2 we have 10900).
- *
+ * (e.g. for revision 1.9.0.2 we have 10900).
+ *
* For webkit based browser (like Safari and Chrome) it contains the
* WebKit build version (e.g. 522).
* @name CKEDITOR.env.version
@@ -185,7 +248,12 @@ if ( !CKEDITOR.env )
* alert( "Your browser is pretty cool!" );
*/
env.isCompatible =
+
+ // White list of mobile devices that supports.
+ env.iOS && version >= 534 ||
+
!env.mobile && (
+
( env.ie && version >= 6 ) ||
( env.gecko && version >= 10801 ) ||
( env.opera && version >= 9.5 ) ||
@@ -193,14 +261,19 @@ if ( !CKEDITOR.env )
( env.webkit && version >= 522 ) ||
false );
- // The CSS class to be appended on the main UI containers, making it
- // easy to apply browser specific styles to it.
+ /**
+ * The CSS class to be appended on the main UI containers, making it
+ * easy to apply browser specific styles to it.
+ * @name CKEDITOR.env.cssClass
+ * @type String
+ * @example
+ * myDiv.className = CKEDITOR.env.cssClass;
+ */
env.cssClass =
'cke_browser_' + (
env.ie ? 'ie' :
env.gecko ? 'gecko' :
env.opera ? 'opera' :
- env.air ? 'air' :
env.webkit ? 'webkit' :
'unknown' );
@@ -211,7 +284,7 @@ if ( !CKEDITOR.env )
{
env.cssClass += ' cke_browser_ie' + (
env.version < 7 ? '6' :
- env.version >= 8 ? '8' :
+ env.version >= 8 ? document.documentMode:
'7' );
if ( env.quirks )
@@ -221,6 +294,9 @@ if ( !CKEDITOR.env )
if ( env.gecko && version < 10900 )
env.cssClass += ' cke_browser_gecko18';
+ if ( env.air )
+ env.cssClass += ' cke_browser_air';
+
return env;
})();
}