if (match == '\\to') {
unlocked.innerHTML = pre + "-> " + post;
unlocked.focus();
+ if (savedRange != null) {
+ if (window.getSelection)//non IE and there is already a selection
+ {
+ var s = window.getSelection();
+ if (s.rangeCount > 0)
+ s.removeAllRanges();
+ s.addRange(savedRange);
+ }
+ else
+ if (document.createRange)//non IE and no selection
+ {
+ window.getSelection().addRange(savedRange);
+ }
+ else
+ if (document.selection)//IE
+ {
+ savedRange.select();
+ }
+ }
+
return suppressdefault(e,true);
}
else return suppressdefault(e,false);
element.parentNode.removeChild(element);
}
+var savedRange;
+
function getCursorPos() {
var cursorPos;
if (window.getSelection) {
var selObj = window.getSelection();
- var selRange = selObj.getRangeAt(0);
+ savedRange = selObj.getRangeAt(0);
//cursorPos = findNode(selObj.anchorNode.parentNode.childNodes, selObj.anchorNode) + selObj.anchorOffset;
cursorPos = findNode(unlocked.childNodes, selObj.anchorNode,0) + selObj.anchorOffset;
/* FIXME the following works wrong in Opera when the document is longer than 32767 chars */
return(cursorPos);
}
else if (document.selection) {
- var range = document.selection.createRange();
- var bookmark = range.getBookmark();
+ savedRange = document.selection.createRange();
+ var bookmark = savedRange.getBookmark();
/* FIXME the following works wrong when the document is longer than 65535 chars */
cursorPos = bookmark.charCodeAt(2) - 11; /* Undocumented function [3] */
return(cursorPos);