return null;
};
-
-var getElementForNode = function(node) {
-
- var ptr = node.nodeType === Node.TEXT_NODE ? node.parent() : node;
- while(!ptr.getData('canvasElement')) {
- ptr = ptr.parent();
+var getElementForElementRootNode = function(node, withParent) {
+ if(node.nodeType === Node.TEXT_NODE) {
+ return _getElementForRootTextNode(node, withParent);
}
- return ptr.getData('canvasElement');
+ return node.getData('canvasElement');
};
-var getElementForDetachedNode = function(node, originalParent) {
- var ptr = originalParent;
- if(ptr === null) {
- return node.getData('canvasElement');
+var _getElementForRootTextNode = function(textNode, withParent) {
+ var parentElement = getElementForNode(withParent || textNode.parent()),
+ toret;
+ parentElement.children().some(function(child) {
+ if(child.wlxmlNode.sameNode(textNode)) {
+ toret = child;
+ return true;
+ }
+ });
+ return toret;
+};
+
+var getElementForNode = function(node, withParent) {
+ if(node.nodeType === Node.TEXT_NODE) {
+ return _getElementForTextNode(node, withParent);
}
- while(!ptr.getData('canvasElement')) {
- ptr = ptr.parent();
+ while(!node.getData('canvasElement')) {
+ node = node.parent();
}
- return ptr.getData('canvasElement');
+ return node.getData('canvasElement');
};
-var getElementForTextNode = function(textNode) {
- var parentElement = getElementForNode(textNode.parent()),
+var _getElementForTextNode = function(textNode, withParent) {
+ var parentElement = getElementForNode(withParent || textNode.parent()),
toret;
parentElement.children().some(function(child) {
if(child.wlxmlNode.sameNode(textNode)) {
return toret;
};
+var getElementForDetachedNode = function(node, originalParent) {
+ var ptr = originalParent;
+ if(ptr === null) {
+ return node.getData('canvasElement');
+ }
+ while(!ptr.getData('canvasElement')) {
+ ptr = ptr.parent();
+ }
+ return ptr.getData('canvasElement');
+};
+
+
+
return {
nearestInDocumentOrder: nearestInDocumentOrder,
unicode: {
},
getElementForNode: getElementForNode,
getElementForDetachedNode: getElementForDetachedNode,
- getElementForTextNode: getElementForTextNode
+ getElementForElementRootNode: getElementForElementRootNode
};
});