* Get object describing the nodes which contain characters at offset. * * @param {DOMElement|DOMTextNode} root * @param {number} offset * @return {?object}
(root, offset)
| 6340 | * @return {?object} |
| 6341 | */ |
| 6342 | function getNodeForCharacterOffset(root, offset) { |
| 6343 | var node = getLeafNode(root); |
| 6344 | var nodeStart = 0; |
| 6345 | var nodeEnd = 0; |
| 6346 | |
| 6347 | while (node) { |
| 6348 | if (node.nodeType === TEXT_NODE) { |
| 6349 | nodeEnd = nodeStart + node.textContent.length; |
| 6350 | |
| 6351 | if (nodeStart <= offset && nodeEnd >= offset) { |
| 6352 | return { |
| 6353 | node: node, |
| 6354 | offset: offset - nodeStart |
| 6355 | }; |
| 6356 | } |
| 6357 | |
| 6358 | nodeStart = nodeEnd; |
| 6359 | } |
| 6360 | |
| 6361 | node = getLeafNode(getSiblingNode(node)); |
| 6362 | } |
| 6363 | } |
| 6364 | |
| 6365 | /** |
| 6366 | * @param {DOMElement} outerNode |
no test coverage detected