|
|
|
| У меня такой вопрос:
Как сделать чтобы при нажатии на кнопку в поле textarea курсор передвигался на n-ое количество символов назад. | |
|
|
|
|
|
|
|
для: Кирилл
(25.11.2005 в 21:33)
| | Манипуляции с TextRange | |
|
|
|
|
|
|
|
для: 12345
(25.11.2005 в 21:43)
| | А можно поподробней. | |
|
|
|
|
|
|
|
|
для: 12345
(25.11.2005 в 22:03)
| | Толи я ничего не понимаю, толи я очень дуплю но никак не могу сообразить как работает TextRange. Если не трудно можете привести конкретный скрипт. | |
|
|
|
|
|
|
|
для: Кирилл
(25.11.2005 в 23:08)
| | Это не слишком очевидная вещь, так что нормально. Поставим такую задачу: на базе написанного скрипта двигать курсор от центра текста внешними кнопками. Слегка модифицируем код, и получается, что он при клике на поле ввода выделяет центр, а при клике на кнопках сдвигается от центра.
<input id=i value=1234567890 onClick=f()> фокусы для IE<br>
<input type=button value=-5> <input type=button value=-2>
<input type=button value=-1> <input type=button value=+2>
<input type=button value=+5> Кнопки сдвига относительно центра на N позиций<br>
<script>d=document;ch='character';
d.onclick=function(){if((se=event.srcElement).tagName=="INPUT"&&se.id!='i'){
var j=eval('0'+se.value); //величина сдвига
t=d.all.i.createTextRange(); //t занимает всю строку
t.collapse(); //t в начале строки
t.move(ch,d.all.i.value.length/2+j); //t перемещён
t.select(); //визуализируем
}}
function f(){t=d.all.i.createTextRange();
t.moveStart(ch,d.all.i.value.length/2-1);
t.moveEnd(ch,-d.all.i.value.length/2+1); //края t заняли середину текста
t.select();}
</script>
| Работает в IE; Опера с 8-й, что ли, версии поддерживает, для FF нужно использовать Range и не d.all . | |
|
|
|