Получение слова "из-под каретки"
Встала необходимость выделить слово на месте каретки в редактируемом диве. В гугле ничего подходящего не нашел. Не подскажете как это осуществить?
|
Apollo_440,
Выложите HTML пример |
Примерно так:
<div style="border:1px solid #AAA;width:350px;height:200px" contenteditable> Здесь текст, много т<u>екста с ф</u><strong><u>ормат</u>ирован</strong>ием </div> Необходимо получить слово, на котором есть каретка, а затем его выделить, ну или хотя бы alert ом показать что за оно. |
http://javascript.ru/forum/dom-windo...tml#post129381
Ну туть что-то есть |
Кажись там описано только как получить каретку в contenteditable. Вы может меня не совсем поняли, но мне нужно получить слово, в котором мигает каретка. В результате должно получиться так, как будто я сделал doubleckick на слове (в браузерах оно сразу же выделяется). Вот такое мне необходимо. То есть самая главная задача - получить начало и конец слова в котором каретка.
|
Цитата:
function FindWord(str,pos) { //alert(' pos='+pos+'\n'+str) var L =str.length; var Le =L-pos; //1 стоим не на пробеле ? // if(str.substring(pos,pos+1).search(/\s/i)!=-1)return false; //2 определяем начало слова for(var i=pos; i>-1; i--){//alert(i) if(str.substring(i,pos).search(/\s/i)!=-1)break; } var st = 0;if(i)st=i+1; for(var i=pos; i<L; i++){//alert(i) if(str.substring(i,pos).search(/\s/i)!=-1)break; } var end = L-1;if(i)end=i-1; return str.substring(st,end) } var str = 'ну читаете весь контент - определяете положение каретки - далее регуляркой - определяете ближайшие \ пробелы в контенте от положения каретки - это и есть границы слова...' var pos=39; alert(FindWord(str,pos)) |
Благодарю. Думаю это то, что надо мне.
|
Цитата:
|
Есть же конечно стандартные способы, такие как expand (функция называется в каждом браузере по-разному), например seRange.expand("word") (ie), в лисе своя... Вот только в опере такого ненту :(, иначе проблема канула бы в лету.
|
Apollo_440,
К вечеру сделаю - сейчас занят (*Положение каретки буду считать якобы уже считанным) |
Часовой пояс GMT +3, время: 18:35. |