X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/426d76c295fc768ba039d84aaf37b80f657f3b7d..2c0f5a6242a51bab12bd383b0097cba6027020dd:/src/smartxml/smartxml.js?ds=sidebyside diff --git a/src/smartxml/smartxml.js b/src/smartxml/smartxml.js index a60ae9a..e3c831d 100644 --- a/src/smartxml/smartxml.js +++ b/src/smartxml/smartxml.js @@ -6,7 +6,7 @@ define([ ], function($, _, Backbone, events) { 'use strict'; - +/* globals Node */ var TEXT_NODE = Node.TEXT_NODE; @@ -184,7 +184,7 @@ $.extend(ElementNode.prototype, { detach: function() { var next; - if(parent && this.isSurroundedByTextElements()) { + if(this.parent() && this.isSurroundedByTextElements()) { next = this.next(); this.prev().appendText(next.getText()); next.detach(); @@ -272,6 +272,15 @@ $.extend(ElementNode.prototype, { 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) { @@ -437,6 +446,7 @@ $.extend(Document.prototype, Backbone.Events, { createDocumentNode: function(from) { if(!(from instanceof Node)) { if(from.text !== undefined) { + /* globals document */ from = document.createTextNode(from.text); } else { var node = $('<' + from.tagName + '>');