Здравствуйте, помогите решить следующую проблему:
Есть скрипт для вставки BB кода и сохранения выделения текста (т.е после вставки bb кода текст остаётся выделенным):
Код:
|
function click_bb(aid,Tag) {
var Open='['+Tag+']';
var Close='[/'+Tag+']';
if (window.attachEvent && navigator.userAgent.indexOf('Opera') === -1) {
var doc = document.getElementById(aid);
doc.focus();
sel = document.selection.createRange();
sel.text = Open+sel.text+Close;
doc.focus();
} else {
docs = document.getElementById(aid);
var doc = docs[0];
var ss = doc.scrollTop;
sel1 = doc.value.substr(0, doc.selectionStart);
sel2 = doc.value.substr(doc.selectionEnd);
sel = doc.value.substr(doc.selectionStart,
doc.selectionEnd - doc.selectionStart);
var text = doc.firstChild;
doc.value = sel1 + Open + sel + Close + sel2;
selPos = Open.length + sel1.length + sel.length + Close.length;
doc.setSelectionRange(sel1.length, selPos);
doc.scrollTop = ss;
}
return false;
} |
Если сделать так:
Код:
|
<form name="form_name">
<a href="#" onclick="click_bb('area_id', 'b');">BB - 1</a>
<textarea id="area_id" cols="40" rows="4"></textarea>
</form> |
То всё работает как нужно, если же написать так:
Код:
|
<form name="form_name">
<div onclick="click_bb('area_id', 'b');">BB - 1</div>
<textarea id="area_id" cols="40" rows="4"></textarea>
</form> |
то в IE 6,7 срабатывает не правильно (тэги вставляются на текужее положение курсора и выделение не сохраняется)
Как можно исправить JavaScript, таким образом, что бы второй вариант работал верно?