* Get object describing the nodes which contain characters at offset. * * @param {DOMElement|DOMTextNode} root * @param {number} offset * @return {?object}
(root, offset)
| 6443 | * @return {?object} |
| 6444 | */ |
| 6445 | function getNodeForCharacterOffset(root, offset) { |
| 6446 | var node = getLeafNode(root); |
| 6447 | var nodeStart = 0; |
| 6448 | var nodeEnd = 0; |
| 6449 | |
| 6450 | while (node) { |
| 6451 | if (node.nodeType === TEXT_NODE) { |
| 6452 | nodeEnd = nodeStart + node.textContent.length; |
| 6453 | |
| 6454 | if (nodeStart <= offset && nodeEnd >= offset) { |
| 6455 | return { |
| 6456 | node: node, |
| 6457 | offset: offset - nodeStart |
| 6458 | }; |
| 6459 | } |
| 6460 | |
| 6461 | nodeStart = nodeEnd; |
| 6462 | } |
| 6463 | |
| 6464 | node = getLeafNode(getSiblingNode(node)); |
| 6465 | } |
| 6466 | } |
| 6467 | |
| 6468 | /** |
| 6469 | * @param {DOMElement} outerNode |
no test coverage detected