Avatar billede jd Nybegynder
23. september 2001 - 16:32 Der er 12 kommentarer og
1 løsning

Indsæt text i textarea ved cursor

Hej -

Jeg har brug for en x-browser løsning der kan indsætte en given text i et texarea der hvor cursoren står.
Jeg har for lang, lang tid siden fået en IE-løsning(http://www.eksperten.dk/spm/27646) på problemet med mine javascript-evner rækker desværre ikke til at gøre det x-browser kompatibelt.

Al hjælp modtages med kyshånd - på forhånd tak!

- Jonas
Avatar billede horsmark Nybegynder
23. september 2001 - 16:48 #1
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;
    }


prøv denne :-)
   
Avatar billede horsmark Nybegynder
23. september 2001 - 16:51 #2
Hmm er ikke så hård til crossbrowser desværre men det virker fint på IE

<textarea
ONSELECT  =\"storeCaret(this);\"
ONCLICK  =\"storeCaret(this);\"
ONKEYUP  =\"storeCaret(this);\">blbla</textarea>
Avatar billede jd Nybegynder
23. september 2001 - 17:01 #3
Dit svar ligner til forveksling det jeg refererede til før. Hvis du ikke ved om det er cross-browser er det ikke et svar.
Du har end ikke givet et eksempel på hvordan funktionerne bruges.

- Jonas
Avatar billede horsmark Nybegynder
23. september 2001 - 17:03 #4
damn så først nu at det ER det samme som dit link *.-(
Avatar billede jakoba Nybegynder
23. september 2001 - 17:04 #5
Mig bekendt tillader NS ikke at man roder i den indre skruktur i et formfelt. Men det ku da være, så jeg lytter med.
Avatar billede jd Nybegynder
23. september 2001 - 17:19 #6
jakoba:> Jeg håber ikke du har ret...
Hvordan står det til med Opear m.v.?

- Jonas
Avatar billede jakoba Nybegynder
23. september 2001 - 17:32 #7
Den der funktion \"createTextRange()\" er ikke en officiel javascript funktion, så hvis det kan gøres i Opera bliver det næppe på den måde.
Avatar billede olebole Juniormester
23. september 2001 - 17:34 #8
<ole>
Hmmmm....mig bekendt fungerer -document.createRange- og \'-createTextRange\' fint i NS6...forrmodentlig også i Mozilla og Opera. Jeg har kun brugt det i applikationer til afvikling under IE5+ og miljøer, der anvender komponenter herfra - så jeg er ikke 200%  :)

Dette link omtaler noget selection-handling i IE4+ og NS4+, men du må fiddle lidt med at finde cursor\'ens position...aner ikke, om det lader sig gøre...tvivler:
  http://www.webreference.com/js/column12/crossbrowser.html
...læs hele artiklen  =)
Når du tster, om en JavaScript-metode kan bruges i en bestemt browser kan du jo altid skrive en linie à la:
  if (createRange) alert(\"Jubiiiiii....det virker!\");
Så er du sikker på metoden virker og det ikke er noget andet, der fejler  :)
/mvh
</bole>
Avatar billede olebole Juniormester
23. september 2001 - 17:37 #9
Jakob >> det er rigtigt.
\'document.createTextRange\' virker ikke i NS6+, men det gør \'document.createRange\', så noget kan man helt sikkert lave i NS6+  :)
Avatar billede jd Nybegynder
24. september 2001 - 17:55 #10
Det giver måske sig selv og/eller står måske ligefrem i tidligere svar, men da jeg ikke har kunnet lave noget funktions-dygtigt får i mit spørgsmål:
Hvordan aflæser jeg cursorens position i textareaet?(x-browser)

- Jonas
Avatar billede olebole Juniormester
24. september 2001 - 18:11 #11
Det gør du nok ikke. Det vil formodentlig ikke kunne komme til at virke i NS4.x
Avatar billede jd Nybegynder
25. september 2001 - 19:24 #12
Æv bæv...
Avatar billede jd Nybegynder
20. oktober 2001 - 02:31 #13
Ingen løsning fundet...
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