04. marts 2003 - 19:57
Der er
11 kommentarer og 1 løsning
insætning af tekst i et <textarea>
Hej lad os sige du har en <textarea>... du har også en <button>... jeg skal så have lavet 2 stykker JS... 1) indætte [txt] lige der hvor markøren står 2) indsætte forand det markerede tekst og efter... 15p for hvert script... (ps, det skal helst være en funktion der bliver kaldt, som fx indsaet_txt(txt, form, field); indsaet_txt_udvidet(start, slut, form, field); Morten
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
04. marts 2003 - 21:38
#1
<HTML> <HEAD> <SCRIPT> function storeCaret (textEl) { if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate(); } function insertAtCaret (textEl, text) { if (textEl.createTextRange && textEl.caretPos) { var caretPos = textEl.caretPos; caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == \' \' ? text + \' \' : text; } else textEl.value = text; } </SCRIPT> </HEAD> <BODY> <FORM NAME=\"aForm\"> <TEXTAREA NAME=\"aTextArea\" ROWS=\"5\" COLS=\"80\" WRAP=\"soft\" ONSELECT=\"storeCaret(this);\" ONCLICK=\"storeCaret(this);\" ONKEYUP=\"storeCaret(this);\" > Hej hej Vi skal indsætte spændende tekster her. </TEXTAREA> <BR> <INPUT TYPE=\"text\" NAME=\"aText\" SIZE=\"80\" VALUE=\"Nikolajdu\"> <BR> <INPUT TYPE=\"button\" VALUE=\"Indsæt\" ONCLICK=\"insertAtCaret(this.form.aTextArea, this.form.aText.value);\" > </FORM> </BODY> </HTML>
04. marts 2003 - 21:39
#2
05. marts 2003 - 07:58
#3
tester det i dag efter 14:30... kan du også spm 2?
05. marts 2003 - 08:17
#4
SPM 1 + SPM 2: <HTML> <HEAD> <SCRIPT> function storeCaret (textEl) { if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate(); } function insertAtCaret (textEl, text, StartTag, EndTag) { text = StartTag + text + EndTag; if (textEl.createTextRange && textEl.caretPos) { var caretPos = textEl.caretPos; caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text; } else textEl.value = text; } </SCRIPT> </HEAD> <BODY> <FORM NAME="aForm"> <TEXTAREA NAME="aTextArea" ROWS="5" COLS="80" WRAP="soft" ONSELECT="storeCaret(this);" ONCLICK="storeCaret(this);" ONKEYUP="storeCaret(this);"> Hej hej Vi skal indsætte spændende tekster her. </TEXTAREA> <BR> <INPUT TYPE="text" NAME="aText" SIZE="80" VALUE="testhest"> <BR> Starttag <INPUT TYPE="text" NAME="aTagStart" SIZE="80" VALUE="<b>"> <BR> Sluttag <INPUT TYPE="text" NAME="aTagEnd" SIZE="80" VALUE="</b>"> <BR> <INPUT TYPE="button" VALUE="Indsæt" ONCLICK="insertAtCaret(this.form.aTextArea,this.form.aText.value,this.form.aTagStart.value,this.form.aTagEnd.value);"> </FORM> </BODY> </HTML>
05. marts 2003 - 08:24
#5
det virker, ikke helt efter hesigten, men det virker... små ting du godt må se om du kan rette 1), <b> og </b> skal inde umidbart rundt om det markerede tekst (jeg har set det før, men kan ikke huske hvor...) 2), hvis man bare skal smide et tegn ind (som fx ":)"), skal dette køres ved markøren... ved ikke om det er fordi jeg kører Mozilla at det ikke virker, men det skal virke, også i mozilla... Morten
05. marts 2003 - 09:18
#6
<HTML> <HEAD> <SCRIPT> function storeCaret (textEl) { if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate(); } function insertAtCaret (textEl, text, StartTag, EndTag) { if (textEl.createTextRange && textEl.caretPos) { var caretPos = textEl.caretPos; if(text!=""){ caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text; }else{ caretPos.text = StartTag + caretPos.text + EndTag; } } else textEl.value = text; } </SCRIPT> </HEAD> <BODY> <FORM NAME="aForm"> <TEXTAREA NAME="aTextArea" ROWS="5" COLS="80" WRAP="soft" ONSELECT="storeCaret(this);" ONCLICK="storeCaret(this);" ONKEYUP="storeCaret(this);"> Hej hej Vi skal indsætte spændende tekster her. </TEXTAREA> <BR> <INPUT TYPE="text" NAME="aText" SIZE="80" VALUE="testhest"> <BR> <INPUT TYPE="button" VALUE="Indsæt" ONCLICK="insertAtCaret(this.form.aTextArea,this.form.aText.value,this.form.aTagStart.value,this.form.aTagEnd.value);"> <BR><BR> Starttag <INPUT TYPE="text" NAME="aTagStart" SIZE="10" VALUE="<b>"> <BR> Sluttag <INPUT TYPE="text" NAME="aTagEnd" SIZE="10" VALUE="</b>"><br> <INPUT TYPE="button" VALUE="Omslut med tags" ONCLICK="insertAtCaret(this.form.aTextArea,'',this.form.aTagStart.value,this.form.aTagEnd.value);"> </FORM> </BODY> </HTML>
05. marts 2003 - 17:07
#7
din kode virker 99.9% i IE... man skal have ændret i formen for at det virke, men det er jo fordi storeCaret først bliver kaldt ved ændring af <textarea>'et... men ellers virker det i IE... MEN, det virker ikke i Mozilla... kan koden komme til at virke i Mozilla??? Morten
05. marts 2003 - 17:08
#8
tja hvis du skal have en 100% x-browserversion kan jeg ikke hjælpe dig mere end jeg allerede har gjort :-)
05. marts 2003 - 17:11
#9
OK... smider du en onLoad="storeCaret(.....);" ind i <body> tag'et, så bliver jeg glad, og så for du point... så laver jeg et andet spm med noget mozilla kompatibilitet... Morten
05. marts 2003 - 17:23
#10
Hmm hvad vil du opnå ? *S* storeCaret betyder jo direkte oversat at fange cursorens placering i textarea´et så hvis du har en onload dvs. udfør når siden er færdigloadet ja så kokser det jo eftersom man jo skal vælge hvor i textareat der skal indsættes kode...
05. marts 2003 - 17:36
#11
horsmark => det har du ret i, den havde jeg ikke lige fanget... så får du bare point'ene... Morten
05. marts 2003 - 17:57
#12
oki... førnøjelsen er på min side :-)
Vi tilbyder markedets bedste kurser inden for webudvikling