Avatar billede jytte Nybegynder
16. september 2003 - 10:07 Der er 12 kommentarer og
1 løsning

markering i textarea

Jeg har et textarea-felt hvori der står

Manden gik en tur i parken.

jeg ønsker et javascript der gør følgende

1)Hvis curseren står på ordet "tur" og jeg trykker på en knap der hedder marker skal textarea-feltet ændre sig til

Manden gik en |tur| i parken.

2) Hvis "gik en tur" er selected og jeg trykker på en knap der hedder marker skal textarea-feltet ændre sig til

Manden |gik en tur| i parken.

På forhånd tak.
Avatar billede mm12010 Nybegynder
16. september 2003 - 10:30 #1
Avatar billede mm12010 Nybegynder
16. september 2003 - 10:34 #2
Avatar billede jytte Nybegynder
16. september 2003 - 11:23 #3
Dit 2. link giver mig næsten svaret på 2. Men funktionen makeSelection

function MakeSelection() {
    sT = document.selection.createRange();   
    sTxt = sT.text; 
    sT.text = "|" + sTxt + "|";
}

er totalt ligeglad med om det jeg har selected er i mit textareafelt eller ej og hvis jeg ikke har selected noget indsætter den || i toppen af min html-side.

Så hvordan tjekker jeg om det selectede findes i mit textareafelt ?

og har du også et forslag til 1) ?
Avatar billede mm12010 Nybegynder
16. september 2003 - 11:36 #4
function MakeSelection(){
    if((document.selection.createRange().text != ""){
        sT = document.selection.createRange();   
        sTxt = sT.text; 
        sT.text = "|" + sTxt + "|";
        }
    }

hvordan du tjecker om det er i et textarea ved jeg ikke, men denne burde ordne det andet problem
Avatar billede mm12010 Nybegynder
16. september 2003 - 11:40 #5
måske sådan:

function MakeSelection(){
    if((document.selection.createRange().text != "")&&(document.forms['formnavn'].textareaNavn.value.indexOf(document.selection.createRange().text)!=-1)){
        sT = document.selection.createRange();   
        sTxt = sT.text; 
        sT.text = "|" + sTxt + "|";
        }
    }
Avatar billede jytte Nybegynder
16. september 2003 - 11:53 #6
ikke helt for hvis der står det samme ord udenfor textareafeltet og indenfor så vil en markering uden for give |´er om alligevel...

men din først MakeSelection ordnede da problemet med de overflødige || indsættelser
Avatar billede mm12010 Nybegynder
16. september 2003 - 11:58 #7
et skud i tågen:

if(document.forms['formnavn'].textareaNavn.selection.createRange().text != ""){

ellers er jeg blank :o)
Avatar billede jytte Nybegynder
16. september 2003 - 12:05 #8
Nej det har jeg prøvet men jeg kan kun få den til at acceptere ordet "selection" efter "document."

Jeg skal nok give dig point, men jeg lader spørgmålet være åbent et stykke tid endnu for at se om der er andre med gode forslag.
Avatar billede mm12010 Nybegynder
16. september 2003 - 12:06 #9
ok :o)
Avatar billede jytte Nybegynder
16. september 2003 - 13:20 #11
>mm12010
Dine links har nu løst 2)

function MakeSelection() {
    document.formnavn.textareanavn.focus();
    if (document.selection && document.selection.createRange() &&   
            document.formnavn.textareanavn.focus) {
        sT = document.selection.createRange();
        sTxt = sT.text; 
        if ((sTxt!='') && (document.formnavn.textareanavn.value.indexOf(document.selection.createRange().text)!=-1)){
            sT.text = "|" + sTxt + "|";
        }   
    }
    else {
      alert('I din browser skal du desværre selv skrive | før og efter indsættelsesteksten.');
    }
}
Avatar billede jytte Nybegynder
17. september 2003 - 19:27 #12
Da der ikke er andre der har svaret får du fortjent alle pointene.
Avatar billede mm12010 Nybegynder
18. september 2003 - 09:46 #13
takker :o)
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