Две JS-функции - обработчики вставки кодов форматирования (bb или html)

doran7

Новичок
Первая

function insert_text(open, close)
{
msgfield = (document.all) ? document.all.req_message : ((document.getElementById('afocus') != null) ? (document.getElementById('afocus').req_message) : (document.getElementsByName('req_message')[0]));

// IE support
if (document.selection && document.selection.createRange)
{
msgfield.focus();
sel = document.selection.createRange();
sel.text = open + sel.text + close;
msgfield.focus();
}

// Moz support
else if (msgfield.selectionStart || msgfield.selectionStart == '0')
{
var startPos = msgfield.selectionStart;
var endPos = msgfield.selectionEnd;

msgfield.value = msgfield.value.substring(0, startPos) + open + msgfield.value.substring(startPos, endPos) + close + msgfield.value.substring(endPos, msgfield.value.length);
msgfield.selectionStart = msgfield.selectionEnd = endPos + open.length + close.length;
msgfield.focus();
}

// Fallback support for other browsers
else
{
msgfield.value += open + close;
msgfield.focus();
}

return false;
}

Вторая

function insert(start, end) {
element = document.getElementById('user_text');
if (document.selection) {
element.focus();
sel = document.selection.createRange();
sel.text = start + sel.text + end;
} else if (element.selectionStart || element.selectionStart == '0') {
element.focus();
var startPos = element.selectionStart;
var endPos = element.selectionEnd;
element.value = element.value.substring(0, startPos) + start + element.value.substring(startPos, endPos) + end + element.value.substring(endPos, element.value.length);
} else {
element.value += start + end;
}
}

Обе функции, имхо, выполняют аналогичную работу. Но скрипт второй проще для понимания. Прошу корифеев помочь разобраться, есть ли какие-либо принципиальные отличия между скриптом первой и второй функции, и если есть - то какие. Функции полезные для вставки bb- или html кодов форматирования в сообщение юзера.
 
Сверху