Показать сообщение отдельно
  #6 (permalink)  
Старый 28.05.2012, 18:29
Интересующийся
Отправить личное сообщение для platitude Посмотреть профиль Найти все сообщения от platitude
 
Регистрация: 27.01.2012
Сообщений: 18

Вопрос решён, НО осталось проблема со стрелкой в право (когда доходит до новой строки, то встаёт и не движется более) Кто что может подсказать? Функции:

function doGetCaretPosition(ctrl) {
var CaretPos=0;
if (ctrl.tagName=='TEXTAREA') {
ctrl.focus();
if (document.selection) {
var sel = document.selection.createRange();
var clone = sel.duplicate();
sel.collapse(true);
clone.moveToElementText(ctrl);
clone.setEndPoint('EndToEnd', sel);
return (clone.text.length);
}
} else {
// IE Support
if (document.selection) {
ctrl.focus();
var Sel=document.selection.createRange();
var SelLength=document.selection.createRange().text.length;
Sel.moveStart('character', -ctrl.value.length);
CaretPos=Sel.text.length-SelLength;
// Firefox support
} else if (ctrl.selectionStart || ctrl.selectionStart=='0')
CaretPos=ctrl.selectionStart;
return (CaretPos);
}}


Вторая функция:
function setCaretPosition(ctrl,pos){
if (ctrl.setSelectionRange) {
ctrl.focus();
ctrl.setSelectionRange(pos,pos);
} else if (ctrl.createTextRange) {
var range=ctrl.createTextRange();
if (ctrl.tagName=='TEXTAREA') {
pos=pos-(ctrl.value.slice(0,pos).split("\r\n").length-1);
}
range.collapse(true);
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
}

Последний раз редактировалось platitude, 28.05.2012 в 19:00. Причина: правка
Ответить с цитированием