summaryrefslogtreecommitdiff
path: root/core/dom/documentfragment.js
diff options
context:
space:
mode:
Diffstat (limited to 'core/dom/documentfragment.js')
-rw-r--r--core/dom/documentfragment.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/core/dom/documentfragment.js b/core/dom/documentfragment.js
new file mode 100644
index 0000000..966b00b
--- /dev/null
+++ b/core/dom/documentfragment.js
@@ -0,0 +1,45 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * DocumentFragment is a "lightweight" or "minimal" Document object. It is
+ * commonly used to extract a portion of a document's tree or to create a new
+ * fragment of a document. Various operations may take DocumentFragment objects
+ * as arguments and results in all the child nodes of the DocumentFragment being
+ * moved to the child list of this node.
+ *
+ * @class
+ * @constructor Creates a document fragment class instance.
+ * @param {Object} nodeOrDoc
+ * @todo example and param doc
+ */
+CKEDITOR.dom.documentFragment = function( nodeOrDoc ) {
+ nodeOrDoc = nodeOrDoc || CKEDITOR.document;
+
+ if ( nodeOrDoc.type == CKEDITOR.NODE_DOCUMENT )
+ this.$ = nodeOrDoc.$.createDocumentFragment();
+ else
+ this.$ = nodeOrDoc;
+};
+
+CKEDITOR.tools.extend( CKEDITOR.dom.documentFragment.prototype, CKEDITOR.dom.element.prototype, {
+ /**
+ * The node type. This is a constant value set to {@link CKEDITOR#NODE_DOCUMENT_FRAGMENT}.
+ *
+ * @readonly
+ * @property {Number} [=CKEDITOR.NODE_DOCUMENT_FRAGMENT]
+ */
+ type: CKEDITOR.NODE_DOCUMENT_FRAGMENT,
+
+ /**
+ * Inserts document fragment's contents after specified node.
+ *
+ * @param {CKEDITOR.dom.node} node
+ */
+ insertAfterNode: function( node ) {
+ node = node.$;
+ node.parentNode.insertBefore( this.$, node.nextSibling );
+ }
+}, true, { 'append':1,'appendBogus':1,'getFirst':1,'getLast':1,'getParent':1,'getNext':1,'getPrevious':1,'appendTo':1,'moveChildren':1,'insertBefore':1,'insertAfterNode':1,'replace':1,'trim':1,'type':1,'ltrim':1,'rtrim':1,'getDocument':1,'getChildCount':1,'getChild':1,'getChildren':1 } );