* Get object describing the nodes which contain characters at offset. * * @param {DOMElement|DOMTextNode} root * @param {number} offset * @return {?object}
(root, offset)
| 6817 | |
| 6818 | |
| 6819 | function getNodeForCharacterOffset(root, offset) { |
| 6820 | var node = getLeafNode(root); |
| 6821 | var nodeStart = 0; |
| 6822 | var nodeEnd = 0; |
| 6823 | |
| 6824 | while (node) { |
| 6825 | if (node.nodeType === TEXT_NODE) { |
| 6826 | nodeEnd = nodeStart + node.textContent.length; |
| 6827 | |
| 6828 | if (nodeStart <= offset && nodeEnd >= offset) { |
| 6829 | return { |
| 6830 | node: node, |
| 6831 | offset: offset - nodeStart |
| 6832 | }; |
| 6833 | } |
| 6834 | |
| 6835 | nodeStart = nodeEnd; |
| 6836 | } |
| 6837 | |
| 6838 | node = getLeafNode(getSiblingNode(node)); |
| 6839 | } |
| 6840 | } |
| 6841 | |
| 6842 | /** |
| 6843 | * @param {DOMElement} outerNode |
no test coverage detected