X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/5a57bc3cb22f2cb424186d8a7992d7dc7af68326..e104b4b87dc39066cbe397984c6f0e6bcc0459f8:/src/smartxml/smartxml.js?ds=sidebyside diff --git a/src/smartxml/smartxml.js b/src/smartxml/smartxml.js index 9cff5ec..c0b9aa4 100644 --- a/src/smartxml/smartxml.js +++ b/src/smartxml/smartxml.js @@ -280,12 +280,33 @@ $.extend(ElementNode.prototype, { var TextNode = function(nativeNode, document) { DocumentNode.call(this, nativeNode, document); + this._data = Object.create({}); + nativeNode.__smartxmlTextNodeInstance = this; }; TextNode.prototype = Object.create(DocumentNode.prototype); $.extend(TextNode.prototype, { nodeType: Node.TEXT_NODE, + setData: function(arg1, arg2) { + if(arguments.length === 2) { + if(_.isUndefined(arg2)) { + delete this._data[arg1]; + } else { + this._data[arg1] = arg2; + } + } else { + this._data = _.extend({}, arg1); + } + }, + + getData: function(key) { + if(key) { + return this._data[key]; + } + return this._data; + }, + getText: function() { return this.nativeNode.data; }, @@ -360,7 +381,8 @@ $.extend(Document.prototype, Backbone.Events, fragments, { var cached; if(from instanceof Node) { - cached = ($(from).data(privateKey) || {}).node; + /* globals Text */ + cached = from instanceof Text ? from.__smartxmlTextNodeInstance : ($(from).data(privateKey) || {}).node; if(cached instanceof DocumentNode) { return cached; }