Ну, хотя вы нашли решение проблемы, указанной в вашем втором абзаце, я не думаю, что ответ на ваш главный вопрос был дан. :)
Объект Выделение имеет свойство с именем anchorOffset , которое дает именно то, что вы просили (положение выделенного текста в элементе). Приведенная выше ссылка расскажет вам о том, какие браузеры его поддерживают, я боюсь, что IE <9 не сможет. </p>
function show_selected()
{
var sel = selection();
console.log(sel.anchorOffset + ':' + sel);
}
Теперь, если вы связываете show_selected
, скажем, mouseup
, вы увидите смещение и выделенный текст, напечатанный на консоли js.
Функция selection
может быть следующей, кросс-браузерной:
function selection()
{
var sel;
if(window.getSelection){
sel = window.getSelection()
}
else if(document.getSelection){
sel = document.getSelection()
}
else if(document.selection){
sel = document.selection.createRange()
}
return sel
}