Indsæt tag på cursors plads i textarea
Hey heyJeg har denne kode:
function InsertTag(tag)
{
var cursorpos;
var starttext = "<"+tag+">";
var sluttext = "</"+tag+">";
f = document.mailformen.elements['tekst'];
if (f.selectionEnd != undefined)
{
cursorpos = f.selectionEnd+starttext.length+sluttext.length;
f.value = InsertStr(f.value,starttext,sluttext,f.selectionStart,f.selectionEnd);
f.focus();
f.setSelectionRange(cursorpos,cursorpos);
}
else if ( document.selection )
{
r = document.selection.createRange();
if ( r.text != "" )
r.text = starttext + r.text + sluttext;
else
f.value += starttext + sluttext;
document.selection.empty();
f.focus();
}
else
alert("Denne funktion er ikke supportet i din browser.\n\nSkriv manuelt <"+tag+"> og </"+tag+"> omkring din tekst");
}
function InsertStr(input_str,startStr,endStr,posStart, posSlut)
{
var selText = input_str.substr(posStart,(posSlut-posStart));
selText = startStr + selText + endStr;
return input_str.substring(0,posStart) + selText + input_str.substr(posSlut);
}
og kalder den med: onclick="InsertTag('b');"
Det virker perfekt i Firefox, men i IE virker det ikke helt efter hvad jeg kunne tænke mig.
som det er nu skal jeg markere før den smider det ind på det markerede område. jeg vil gerne have at:
- tagstart og tagslut kommer ind på cursorens placering, med en evt markering i mellem.
- cursoren hopper til enden af markeringen, altså efter endtag.
uden if ( r.text != "" ) smider den start og slut ind i starten af body.
Hvordan blier mit eks modificeret til at virke perfekt i IE ?
