как вариант, не идеален, но лучше я пока не придумал![]()
function pastTags(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!=' '){
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 + selectionLenght);
}
Textarea.value = newText;
var moveRange = 0;
moveRange = rangeEnd+text1.length+text2.length;
Textarea.setSelectionRange(moveRange, moveRange);
}работает точно лучше чем местный ужас