venom, я вырезать не буду.
вот в общем моя функция, она на андроиде отлично работает, и каретка положение не теряет и фокус после вставки возвращает на положенное место
function past(text1, text2){
var elrms = document.getElementsByTagName('textarea');
if(elrms.length > 1){
var curr = 0;
for(i=0; i<elrms.length; i++){
if(document.getElementsByTagName('textarea')[i].selectionEnd > 0){
curr = i;
}
}
}else{
curr = 0;
}
var Textarea = document.getElementsByTagName('textarea')[curr];
var rangeStart = Textarea.selectionStart;
var rangeEnd = Textarea.selectionEnd;
var formText = Textarea.value;
var selectionLenght = rangeEnd - rangeStart;
if(text2!=' ' && text2!=''){
var newText = formText.substr(0, rangeStart)+text1+formText.substr(rangeStart, selectionLenght)+text2+formText.substr(rangeStart + selectionLenght);
}else{
var newText = formText.substr(0, rangeEnd)+text1+text2+formText.substr(rangeEnd);
}
Textarea.value = newText;
if(text2.length > 1 && selectionLenght == 0){
var moveRange = rangeStart+text1.length+selectionLenght;
}else{
var moveRange = rangeEnd+text1.length+text2.length;
}
Textarea.setSelectionRange(moveRange, moveRange);
closepopup();
}посмотри, может что высмотришь