
Untitled
By: a guest on
May 6th, 2012 | syntax:
None | size: 1.14 KB | hits: 18 | expires: Never
Calculate the start and end position of user selection using javascript from a parent element
function getBodyTextOffset(node, offset) {
var sel = window.getSelection();
var range = document.createRange();
range.selectNodeContents(document.getElementById('test'));
range.setEnd(node, offset);
sel.removeAllRanges();
sel.addRange(range);
return sel.toString().length;
}
function getSelectionOffsets() {
var sel, range;
var start = 0, end = 0;
if (window.getSelection) {
sel = window.getSelection();
if (sel.rangeCount) {
range = sel.getRangeAt(sel.rangeCount - 1);
start = getBodyTextOffset(range.startContainer, range.startOffset);
end = getBodyTextOffset(range.endContainer, range.endOffset);
sel.removeAllRanges();
sel.addRange(range);
alert(start + ", " + end);
}
} else if (document.selection) {
// IE stuff here
}
return {
start: start,
end: end
};
}
for (i in window.getSelection()) {alert('i = '+i);}
for (i in window.getSelection().getRangeAt(0)) {alert('i = '+i);}