fnp
/
fnpeditor.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
handle situation when nothing was actually unwrapped
[fnpeditor.git]
/
src
/
smartxml
/
smartxml.js
diff --git
a/src/smartxml/smartxml.js
b/src/smartxml/smartxml.js
index
a60ae9a
..
e3c831d
100644
(file)
--- a/
src/smartxml/smartxml.js
+++ b/
src/smartxml/smartxml.js
@@
-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 + '>');