Всем доброго времени суток!
Вот код, который должен выделенную часть текста возводить в теги. Проблема в том, что он не работает в 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.