X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=_source%2Fcore%2Fenv.js;h=20985278f01fa0ea9a6f2a7ce39e8da0f869f076;hb=48b1db88210b4160dce439c6e3e32e14af8c106b;hp=b289538a62adedfa0e6da2b93d65c70f2109a053;hpb=e7789c1ad838194d45eeee6ac2eb6e55f5cf35a1;p=ckeditor.git
diff --git a/_source/core/env.js b/_source/core/env.js
index b289538..2098527 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,13 +67,42 @@ 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 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()
{
- return this.ie && document.domain != window.location.hostname;
+ if ( !this.ie )
+ return false;
+
+ var domain = document.domain,
+ hostname = window.location.hostname;
+
+ return domain != hostname &&
+ domain != ( '[' + hostname + ']' ); // IPv6 IP support (#5434)
}
};
@@ -98,19 +125,34 @@ 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 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 );
@@ -118,13 +160,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.
@@ -153,12 +195,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
@@ -186,14 +228,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' );
@@ -204,7 +251,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 )
@@ -214,6 +261,9 @@ if ( !CKEDITOR.env )
if ( env.gecko && version < 10900 )
env.cssClass += ' cke_browser_gecko18';
+ if ( env.air )
+ env.cssClass += ' cke_browser_air';
+
return env;
})();
}