Avatar billede sukos Juniormester
25. april 2004 - 09:56 Der er 10 kommentarer og
1 løsning

Finde cursors position i et textarea og indsætte html-tag

Hvis jeg har f.eks. to knapper, <b> og </b>, hvordan får jeg så indsat <b> på cursors placering, hvis jeg trykker på den knap o.s.v.
Avatar billede jakobclausen Nybegynder
25. april 2004 - 10:15 #1
<script language="JavaScript">
function makeBold()
{
    sT = document.selection.createRange();
    sTxt = sT.text;
    if(!sTxt.length > 0)
    {
        return( false);
    }
    sT.text = "<B>" + sTxt + "</B>";
}
</script>

<input type="button" value="Fed" class="inputButton" onClick="makeBold()">

Med ovenstående kan du markere en tekst og klikke på knappen der så sætter <B> og </B> ind før og efter det markerede.
Avatar billede jakobclausen Nybegynder
25. april 2004 - 10:24 #2
www.mobildebat.dk har de et lidt mere avanceret system (http://www.mobildebat.dk/posting.php?mode=newtopic&f=3), hvor du evt kan kigge lidt i koden
Avatar billede likeaprayer Nybegynder
25. april 2004 - 11:17 #3
Avatar billede sukos Juniormester
25. april 2004 - 11:22 #4
Det jeg vil,
<input type="button" value="Bold" onClick="make_tag('<b>')">
eller lign.
altså så der sættes en
<b> ind hvor cursor er placeret i textfeltet.
Ikke noget med at markere text først.
Avatar billede sukos Juniormester
25. april 2004 - 11:24 #5
På mobildebat.dk (ligner ikke rigtigt i NS) skal man vist være bruger for at deltage?
På MS er der måske nok noget, men er ikke tilbage førend om nogle timer.
Avatar billede skovenborg Nybegynder
25. april 2004 - 12:29 #6
jeg lavede en gang noget lignende - virker i Mozilla og IE:
var fokus = false;
var cursorpos;
function insertText(frmElm,text) {
    if (frmElm.selectionEnd != undefined) {cursorpos=frmElm.selectionEnd+text.length;frmElm.value = strInsert(frmElm.value,text,frmElm.selectionEnd);}
    else if (document.selection && fokus) {r = document.selection.createRange();r.text = text;}
    else if (document.selection == undefined) frmElm.value += text;
    else;
}
function mozPlaceCursor(frmElm) {
    if (frmElm.selectionEnd != undefined && cursorpos != undefined) {
        frmElm.setSelectionRange(cursorpos,cursorpos);
    }
}
function strInsert(input_str,insert_str,insert_position) {
    return input_str.substring(0,insert_position)+insert_str+input_str.substr(insert_position);
}


<form name="form1">
<input type="button" onmousedown="insertText(this.form.felt,'<b>');" onmouseup="this.form.felt.focus();mozPlaceCursor(this.form.felt);">
<textarea name="felt" onfocus="fokus = true;" onblur="fokus = false;">Her er der en masse tekst</textarea>
</form>

Indsætter dog kun <b> - men det er selvfølgelig valgfrit hvad det skal være.
Avatar billede sukos Juniormester
25. april 2004 - 14:37 #7
Fedt! - skovenborg, nu mangler der kun et svar!
Avatar billede sukos Juniormester
25. april 2004 - 14:38 #8
æh, næsten!
Avatar billede sukos Juniormester
25. april 2004 - 14:39 #9
sludder, helt fedt!!!!!!!!
Avatar billede skovenborg Nybegynder
25. april 2004 - 18:20 #10
værsgo' da :-)
Avatar billede jakobclausen Nybegynder
25. april 2004 - 18:24 #11
Måske dette kunne have interesse, hvis der altså kommer nogen svar:
http://www.eksperten.dk/spm/493239
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester