X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=_source%2Fcore%2Feditor_basic.js;h=8d109c82de9524df7dca1dbbcabf4787ca792353;hb=refs%2Ftags%2Fv3.5.3;hp=cb0963e2457615b02e6e9167b5b70186bab1a58c;hpb=ea7e3453c7b0f023b050aca6d9f83ab372860d91;p=ckeditor.git
diff --git a/_source/core/editor_basic.js b/_source/core/editor_basic.js
index cb0963e..8d109c8 100644
--- a/_source/core/editor_basic.js
+++ b/_source/core/editor_basic.js
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2003-2009, 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
*/
@@ -27,36 +27,38 @@ if ( !CKEDITOR.editor )
CKEDITOR.ELEMENT_MODE_APPENDTO = 2;
/**
- * Represents an editor instance. This constructor should be rarely used,
- * being the {@link CKEDITOR} methods preferible.
- * @constructor
+ * Creates an editor class instance. This constructor should be rarely
+ * used, in favor of the {@link CKEDITOR} editor creation functions.
+ * @ class Represents an editor instance.
* @param {Object} instanceConfig Configuration values for this specific
* instance.
* @param {CKEDITOR.dom.element} [element] The element linked to this
* instance.
* @param {Number} [mode] The mode in which the element is linked to this
- * instance.
+ * instance. See {@link #elementMode}.
+ * @param {String} [data] Since 3.3. Initial value for the instance.
* @augments CKEDITOR.event
* @example
*/
- CKEDITOR.editor = function( instanceConfig, element, mode )
+ CKEDITOR.editor = function( instanceConfig, element, mode, data )
{
this._ =
{
// Save the config to be processed later by the full core code.
instanceConfig : instanceConfig,
- element : element
+ element : element,
+ data : data
};
/**
* The mode in which the {@link #element} is linked to this editor
* instance. It can be any of the following values:
*
- * - CKEDITOR.ELEMENT_MODE_NONE: No element is linked to the
+ *
- {@link CKEDITOR.ELEMENT_MODE_NONE}: No element is linked to the
* editor instance.
- * - CKEDITOR.ELEMENT_MODE_REPLACE: The element is to be
+ *
- {@link CKEDITOR.ELEMENT_MODE_REPLACE}: The element is to be
* replaced by the editor instance.
- * - CKEDITOR.ELEMENT_MODE_APPENDTO: The editor is to be
+ *
- {@link CKEDITOR.ELEMENT_MODE_APPENDTO}: The editor is to be
* created inside the element.
*
* @name CKEDITOR.editor.prototype.elementMode
@@ -96,6 +98,10 @@ if ( !CKEDITOR.editor )
// Look for the element by id. We accept any kind of element here.
element = document.getElementById( elementOrIdOrName );
+ // Elements that should go into head are unacceptable (#6791).
+ if ( element && element.tagName.toLowerCase() in {style:1,script:1,base:1,link:1,meta:1,title:1} )
+ element = null;
+
// If not found, look for elements by name. In this case we accept only
// textareas.
if ( !element )
@@ -126,21 +132,23 @@ if ( !CKEDITOR.editor )
* @param {Object} [config] The specific configurations to apply to this
* editor instance. Configurations set here will override global CKEditor
* settings.
+ * @param {String} [data] Since 3.3. Initial value for the instance.
* @returns {CKEDITOR.editor} The editor instance created.
* @example
*/
- CKEDITOR.editor.appendTo = function( elementOrId, config )
+ CKEDITOR.editor.appendTo = function( elementOrId, config, data )
{
- if ( typeof elementOrId != 'object' )
+ var element = elementOrId;
+ if ( typeof element != 'object' )
{
- elementOrId = document.getElementById( elementOrId );
+ element = document.getElementById( elementOrId );
- if ( !elementOrId )
+ if ( !element )
throw '[CKEDITOR.editor.appendTo] The element with id "' + elementOrId + '" was not found.';
}
// Create the editor instance.
- return new CKEDITOR.editor( config, elementOrId, CKEDITOR.ELEMENT_MODE_APPENDTO );
+ return new CKEDITOR.editor( config, element, CKEDITOR.ELEMENT_MODE_APPENDTO, data );
};
CKEDITOR.editor.prototype =