ユーザー選択から範囲オブジェクトを取得する必要があります。
var userSelection;
if (window.getSelection)
userSelection = window.getSelection();
else if (document.selection) // should come last; Opera!
userSelection = document.selection.createRange();
var rangeObject = getRangeObject(userSelection);
..。
function getRangeObject(selectionObject) {
if (selectionObject.getRangeAt)
return selectionObject.getRangeAt(0);
else { // Safari!
var range = document.createRange();
range.setStart(selectionObject.anchorNode, selectionObject.anchorOffset);
range.setEnd(selectionObject.focusNode, selectionObject.focusOffset);
return range;
}
}
...
Rangeオブジェクトには、開始コンテナノードと終了コンテナノードなどがあります。
詳細については、Quirksmodeのこちらとw3.orgのこちらをご覧ください。