Я использую свою собственную оптимизацию алгоритмов в IERange , которая обеспечивает обертку вокруг TextRange IE (что вы получаете из выбора в IE), чтобы дать им тот же интерфейс, что и в DOM Ranges.
Чтобы получить выделение в документе, используйте что-то вроде следующего:
var sel = window.getSelection(); // Provided by IERange in IE, built-in in other browsers
var range = sel.getRangeAt(0); // Note this doesn't work in Safari 2
range
теперь имеет свойства startContainer
и startOffset
, которые являются соответственно ссылкой на узел и смещением в этом узле, которые представляют начало выделения, и соответствующие свойства endContainer
и endOffset
, которые представляет конец выбора.