webForumDet fria alternativet

Infoga tecken på specifik position

5 svar · 335 visningar · startad av Kim

KimMedlem sedan jan. 20007 697 inlägg
#1

Finns det någon möjlighet att infoga en förutbestämd sträng vid en viss position i en textarea? Det är så att jag har en ruta där en massa text skrivs in för att redigera tidigare skrivna texter. Bredvid rutan finns en knapp och vid ett klick på den så ska en <br>-tagg stoppas in där markören befinner sig. Det duger alltså inte med att slänga in taggen sist i arean eftersom det kan vara en redigering av en redan befintlig text.

Jaja, ni kanske förstår. Hoppas att någon kan hjälpa mig. :)

------------------
de'nim

KimMedlem sedan jan. 20007 697 inlägg
#2

Ingen som har en aning?

------------------
de'nim

KimMedlem sedan jan. 20007 697 inlägg
#3

Jaja, med ett par funktioner som jag själv fick knåpa ihop så löste det sig. Men jag kanske har missat någon befintlig sak som fixar det där själv?

------------------
de'nim

easMedlem sedan sep. 2001269 inlägg
#4

Hur gjorde du?

Är intereserad!!!

------------------
Schöndells webbsajt

KimMedlem sedan jan. 20007 697 inlägg
#5
<script language="javascript">

function storeCaret(textArea) {

    if(textArea.createTextRange) {
        textArea.caretPos = document.selection.createRange().duplicate();
    }
}

function insertAtCaret(textArea, text) {

    if(textArea.createTextRange && textArea.caretPos) {

        caretPos = textArea.caretPos;
        caretPos.text =
          caretPos.text.charAt(caretPos.text.length  - 1) == ' ' ?
            '<' + text + '>\n ' : '<' + text + '>\n' ;
        textArea.focus();
    } else {
        textArea.value = text;
    }
}
</script>

Lägg in dessa funktioner längst upp i dokumentet.

Så här ser HTML-koden ut för att hela tiden hålla aktuell position samt för att klicka på en knapp och då infoga något på rätt ställe.

<TEXTAREA NAME="text" ROWS="12" COLS="36" WRAP="virtual" onselect="storeCaret(this)" onclick="storeCaret(this)" onkeyup="st\
oreCaret(this)"></TEXTAREA>

<br><br>

<input type="button" name="brknapp" onClick="javascript:insertAtCaret(text, 'p');" value="P" style="width: 40; font-size: 7px;">

Lycka till! :)

------------------
de'nim

easMedlem sedan sep. 2001269 inlägg
#6

Oj

Det var tjusigt.

Men om vi säger att jag skulle vilja lägga in t.ex. en bild; hur skulle jag göra då?

Jag skulle altså vilja ha en funktion som såg ut ungefär så här:

function insertImg(textArea, url){
caretPos = textArea.caretPos;
caretPos = '<img src="'+url+'">';
textArea.focus();
}

Går det att fixxa :q

------------------
Schöndells webbsajt

[Redigerat av eas den 02 nov 2001]

126 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)