Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   Скрипт вставки BB кода (https://javascript.ru/forum/css-html-internet-explorer/9085-skript-vstavki-bb-koda.html)

petr0007 28.04.2010 12:33

Скрипт вставки BB кода
 
Здравствуйте, помогите решить следующую проблему:

Есть скрипт для вставки 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, таким образом, что бы второй вариант работал верно?

SkaN 13.04.2012 16:58

Только что прочитал темку, где было написано, что подобные скрипты в IE 5-6 не работают, если в <a> нету атрибута href

nevai 20.02.2013 01:02

Много на эту тему можно почитать здесь


Часовой пояс GMT +3, время: 19:43.