Expand|Select|Wrap|Line Numbers
- contenteditable
For example:
Expand|Select|Wrap|Line Numbers
- <div id="editableDiv" contenteditable="true">
- the @twitter
- </div>
I can calculate the string position in sentence using below sentence. This is called once @ keyed down (start index) and on space bar key down (end index - 1)
Expand|Select|Wrap|Line Numbers
- getCaretPosition : function(){
- var element = document.getElementById("editableDiv");
- var caretOffset = 0;
- if (typeof window.getSelection != "undefined") {
- var range = window.getSelection().getRangeAt(0);
- var preCaretRange = range.cloneRange();
- preCaretRange.selectNodeContents(element);
- preCaretRange.setEnd(range.endContainer, range.endOffset);
- caretOffset = preCaretRange.toString().length;
- } else if (typeof document.selection != "undefined" && document.selection.type != "Control") {
- var textRange = document.selection.createRange();
- var preCaretTextRange = document.body.createTextRange();
- preCaretTextRange.moveToElementText(element);
- preCaretTextRange.setEndPoint("EndToEnd", textRange);
- caretOffset = preCaretTextRange.text.length;
- }
- return caretOffset;
- }
I would now like to get the index of the same word from innerHTML of the div
Expand|Select|Wrap|Line Numbers
- editableDiv
InnerHTML:
Expand|Select|Wrap|Line Numbers
- <b>the</b> @twitter
Output ->
start Index : 12
end index: 19