findCanvasElementInParent
[fnpeditor.git] / src / smartxml / smartxml.js
index a60ae9a..e3c831d 100644 (file)
@@ -6,7 +6,7 @@ define([
 ], function($, _, Backbone, events) {
     
 'use strict';
 ], function($, _, Backbone, events) {
     
 'use strict';
-
+/* globals Node */
 
 var TEXT_NODE = Node.TEXT_NODE;
 
 
 var TEXT_NODE = Node.TEXT_NODE;
 
@@ -184,7 +184,7 @@ $.extend(ElementNode.prototype, {
 
     detach: function() {
         var next;
 
     detach: function() {
         var next;
-        if(parent && this.isSurroundedByTextElements()) {
+        if(this.parent() && this.isSurroundedByTextElements()) {
             next = this.next();
             this.prev().appendText(next.getText());
             next.detach();
             next = this.next();
             this.prev().appendText(next.getText());
             next.detach();
@@ -272,6 +272,15 @@ $.extend(ElementNode.prototype, {
         this._$.prepend(nativeNode);
     }),
 
         this._$.prepend(nativeNode);
     }),
 
+    insertAtIndex: function(nativeNode, index) {
+        var contents = this.contents();
+        if(index < contents.length) {
+            return contents[index].before(nativeNode);
+        } else if(index === contents.length) {
+            return this.append(nativeNode);
+        }
+    },
+
     unwrapContent: function() {
         var parent = this.parent();
         if(!parent) {
     unwrapContent: function() {
         var parent = this.parent();
         if(!parent) {
@@ -437,6 +446,7 @@ $.extend(Document.prototype, Backbone.Events, {
     createDocumentNode: function(from) {
         if(!(from instanceof Node)) {
             if(from.text !== undefined) {
     createDocumentNode: function(from) {
         if(!(from instanceof Node)) {
             if(from.text !== undefined) {
+                /* globals document */
                 from = document.createTextNode(from.text);
             } else {
                 var node = $('<' + from.tagName + '>');
                 from = document.createTextNode(from.text);
             } else {
                 var node = $('<' + from.tagName + '>');