Avatar billede tille Nybegynder
27. juli 2000 - 15:26 Der er 5 kommentarer og
1 løsning

cursor position i textarea

Hej hajer

mine brugere skal kunne indtaste historier til hjemmesiden via en form.

jeg har lavet en lille mini htmleditor i formen, hvor de så trykker på knapper og får indsat HTML kode.

Mit problem er at det altid bliver indsat til sidst i det Textarea der tastes i.

Hvordan finder jeg ud af hvor Cursor\'en er placeret og indsætter htmlkoden dér?

på forhånd tak
Avatar billede altinet Nybegynder
27. juli 2000 - 15:48 #1
Så vidt jeg ved har JavaScript ingen mulighed for at \"læse\" cursor position. Jeg har tidligere haft et lignende problem med hensyn til markering af en del af en tekst i et tekstfelt. Det fik jeg aldrig en løsning på, men fandt dengang ud af, at man kun kan markere alt på en gang.
Måske noget med at gemme indholdet af tekstboksen i en variabel, hvor du så ved hjælp af strengmanipulation \"tæller\" dig frem til en \"cursor position\". Cursoren kunne laves med et særligt tegn, og man kunne så have en slags \"pil\" knapper til at flytte cursoren. Indsætning af særlige tags i teksten kunne så ske der hvor \"cursoren\" (det særlige tegn) står ??

:-) Lars
Avatar billede tille Nybegynder
27. juli 2000 - 16:01 #2
Hej Lars

dette script gør det du ville have (fortæller hvor markering starter), men jag kan ikke få det transmogriffet så det løser mit problem,

(det er ikke noget jeg har skrevet, det er hentet i et andet svar)

<html>
<head>
    <title>Untitled</title>
    </head>
<script language=\"JScript\">
function check(num) {
    // Vi finder selection.
    var selection = document.selection.createRange();
    // Laver en TextRange for hele dokumentet.
    var global = document.body.createTextRange();
    // Laver en TextRange for TextArea.
    var area = document.f.a.createTextRange();
   
    // Lader den dokumentets TextRange
    // få samme start og end som area.
    // Dette er fordi selection textrangen er en del af document
    // og ikke TextArea
    global.moveToBookmark(area.getBookmark());
    // Sætter global end til selection start
    global.setEndPoint(\"EndToStart\", selection);
    // finder ny længde af global
    var global_selectPos = global.text.length;
    // Udskriver længde = selection start
    document.f.b.value = \"global_selectPos = \"+global.text.length+\"n---n\";
    // Checker om teksten passer.
    document.f.b.value += document.f.a.value.substr(0,global.text.length);
}
</script>

<body>

<form action=\"\" name=\"f\" id=\"textform\">
    <textarea cols=\"25\" rows=\"10\" name=\"a\">Marker noget af denne tekst og tryk på check.
    </textarea>
    <br><input type=\"button\" value=\"check\" OnClick=\"check()\"><br>
    <textarea cols=\"25\" rows=\"10\" name=\"b\"></textarea>
</form>

</body>
</html>
Avatar billede altinet Nybegynder
27. juli 2000 - 16:36 #3
Takker Tille!

Der er i hvertfald nogle ideer til en løsning på mit problem. Men hvad med dit?

:-) Lars
Avatar billede tille Nybegynder
28. juli 2000 - 09:56 #4
nu har jeg været igennem det meste af nettet, og alle siger at man ikke kan få cursorens position af vide, du får pointene foroverhovedet at gide svare, og så håber jeg du kunne bruge scriptet til dit formål
Avatar billede altinet Nybegynder
28. juli 2000 - 10:33 #5
Jeg takker!

Ked af at jeg ikke kunne være mere til hjælp.

Mit forslag om et særligt tegn som en slags cursor burde kunne lade sig gøre. Ligeledes burde det kunne lade sig gøre at bruge det script du har vist herover til f.eks at markere et ord, og så putte tekst ind før og/eller efter det. Altså f.eks. hvis du vil gøre ordet \"pandekage\" fed, så marker det. brug scriptet til at finde start og slut og sæt så \"<B> \" ind før markeringen og \" </B>\" bagefter. ?!

Desværre har jeg ikke rigtig tid til at eksperimentere med det lige nu, men hvis du stikker mig din mailadresse, skal jeg sende dig et bud når/hvis jeg får tid. Jeg ved godt at det ikke løser dit problem her og nu, men det er det bedste jeg kan gøre!

:-) Lars
mailto:altinet@altinet.dk
Avatar billede altinet Nybegynder
28. juli 2000 - 10:34 #6
altinet@altinet.dk
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