Тема: bb-code в IE
Показать сообщение отдельно
  #1 (permalink)  
Старый 27.04.2013, 14:20
Кандидат Javascript-наук
Отправить личное сообщение для OklickSpb Посмотреть профиль Найти все сообщения от OklickSpb
 
Регистрация: 17.02.2012
Сообщений: 130

bb-code в IE
Всем доброго времени суток!
Вот код, который должен выделенную часть текста возводить в теги. Проблема в том, что он не работает в IE, плиз, помогите, в чем ошибка?
function textEncoding(Type, elem)
{
	var Tag,Tag2;
	for(var key in textCodes) {
		if(key == Type)
		{
			Tag  = textCodes[key][0];
			Tag2 = textCodes[key][1];
		}
	}
	allAreas = $(elem).parent().parent().parent().children("#TextTextArea");
	if ($.browser.msie) {
		var doc = allAreas[0];
		doc.focus();
		sel = document.selection.createRange();
                if(sel.text !=""){
		sel.text = Tag+sel.text+Tag2;
		doc.focus();}
    }
	else {
		var doc = allAreas[0];
		var ss = doc.scrollTop;
		start = doc.value.substr(0, doc.selectionStart);
		end = doc.value.substr(doc.selectionEnd);
		sel = doc.value.substr(doc.selectionStart,
		                  doc.selectionEnd - doc.selectionStart);
                if(!sel ==""){
		doc.value = start + Tag + sel + Tag2 + end;
		selPos = Tag.length + start.length + sel.length + Tag2.length;
		doc.setSelectionRange(start.length, selPos);
		doc.scrollTop = ss;}
	}
}

Вызывается так:
<li id=bold_button style="border-left: 1px solid silver;" onclick="textEncoding(\'b\',this)"><b>Ж</b></li>

Причем, если я вызываю так:
<li id=bold_button style="border-left: 1px solid silver;"><i><a id="2er" href="javascript: textEncoding(\'i\',this)">К</a></i></li>
, то все работает, но при этом не передается this, да и вообще я не люблю так вызывать JS.

Последний раз редактировалось OklickSpb, 27.04.2013 в 14:44.
Ответить с цитированием