I have been using insertAtCaret to insert text at the current cursor position for textboxes however when the textbox becomes associated with an htmleditorextender it fails (I guess because the textbox is now a child element of the htmleditorextender or maybe it creates an iframe?).
Here is my insertAtCaret javascript that works fine when there's no htmleditorextender. The textbox associated with an htmleditorextender is txtEmailBody. Do I need to reference txtEmailBody differently?
function insertAtCaret(text) {
var txtarea = document.getElementById("<%=txtEmailBody.ClientID%>")
var scrollPos = txtarea.scrollTop;
var strPos = 0;
var br = ((txtarea.selectionStart || txtarea.selectionStart == '0') ?
"ff" : (document.selection ? "ie" : false));
if (br == "ie") {
txtarea.focus();
var range = document.selection.createRange();
range.moveStart('character', -txtarea.value.length);
strPos = range.text.length;
}
else if (br == "ff") strPos = txtarea.selectionStart;
var front = (txtarea.value).substring(0, strPos);
var back = (txtarea.value).substring(strPos, txtarea.value.length);
txtarea.value = front + text + back;
strPos = strPos + text.length;
if (br == "ie") {
txtarea.focus();
var range = document.selection.createRange();
range.moveStart('character', -txtarea.value.length);
range.moveStart('character', strPos);
range.moveEnd('character', 0);
range.select();
}
else if (br == "ff") {
txtarea.selectionStart = strPos;
txtarea.selectionEnd = strPos;
txtarea.focus();
}
txtarea.scrollTop = scrollPos;
}
Thanks.