2009-08-28 7 views
3

Я искал дни, но не смог найти одно твердое решение, чтобы получить начало/конец выбора в Internet Explorer, я пробовал решение this и this.диапазон выбора в IE

Оба они связаны с использованием document.selection.createRange(), приведенный ниже код будет работать достаточно хорошо, но если вы идете на новую строку (нажмите введите один или несколько раз), а затем попытаться получить начало выбора/end, вы закончите, прежде чем нажать клавишу ввода. Из того, что я вижу, createRange() не будет выбирать последние пустые разрывы строк, я не хочу, чтобы код становился слишком беспорядочным, так есть ли другое решение для этого?

function selecetion_range() 
{ 
var range = document.selection.createRange(); 
    var stored_range = range.duplicate(); 
    stored_range.moveToElementText(textarea[0]); 
    stored_range.setEndPoint('EndToEnd', range); 

    return { 
      start: stored_range.text.replace(/\r/g,'').length - range.text.replace(/\r/g,'').length, 
      end: stored_range.text.replace(/\r/g,'').length 
} 
} 

редактировать:

Для выяснения вопроса, позволяет сказать, что мой курсор находится в конце этой цитаты:

"какой-то случайный текст

< здесь >"

раз я использую приведенный выше код начало выбор будет:

«какой-то случайный текст < здесь >»

+0

@ Dennis: вы должны отправить ответ со ссылкой на свое решение и принять его. –

ответ

2

Найдено решение here, его огромный блок кода, так что я не хочу чтобы опубликовать ответ здесь.

Смежные вопросы