Avatar billede voller Nybegynder
08. juli 2002 - 19:11 Der er 4 kommentarer og
2 løsninger

Indsæt tekst i textarea

Hejsa.

Jeg sidder og leger med et administrationsmodul til min private hjemmeside. En del af dette administrationssystem er at jeg kan opdatere forsiden af min hjemmeside ved hjælp af et textarea. Problemet er at links mv. skal håndkodes. Derfor er jeg på jagt efter et javascript der kan sætte tekst ind i et textarea.

Her på eksperten.dk fandt jeg følgende script af "atn":

<html>
<head>
    <script language="javascript" type="text/javascript">
    function handle(sInput) {
        selTxt = document.selection.createRange()
        switch (sInput) {
            case "1":
                selTxt.text = '<u>'+ selTxt.text +'</u>';
                break;
            case "2":
                selTxt.text = '<i>'+ selTxt.text +'</i>';
                break;
            case "3":
                selTxt.text = '<b>'+ selTxt.text +'</b>';
                break;
            default:
                break;
        }
    }
    </script>
</head>
<body>
<textarea id="edit" cols="50" rows="20">
Her er der noget tekst....
</textarea><br>
<input type="button" value="Underline" onclick="handle('1')" style="width:100px;">&nbsp;
<input type="button" value="Italic" onclick="handle('2')" style="width:100px;">&nbsp;
<input type="button" value="Bold" onclick="handle('3')" style="width:100px;">&nbsp;
</body>
</html>

"Problemet" med dette script er, at man skal have markeret noget tekst i sit textarea for at angive hvor man f.eks. sætter sit <b></b>. Koden er jo genial når man vil sætte <b></b> om noget tekst, men hvis man nu gerne vil sætte <img src="" width="" height="" border="0" alt="Billede"> ind i sit textarea? Så er det jo ikke helt optimalt, at man først skal vælge noget tekst, for at sætte et billede ind. Kan man gøre noget ved det? Ændre scriptet på en måde?

På forhånd tak for hjælpen.

voller
Avatar billede mini-me Nybegynder
08. juli 2002 - 19:14 #1
Du kan jo lave en dynamisk web-editor i stedet.. det er meget simplere !!
Avatar billede mini-me Nybegynder
08. juli 2002 - 19:15 #2
Avatar billede =maddog= Nybegynder
08. juli 2002 - 19:25 #3
<html>
<head>
    <script language="javascript" type="text/javascript">
    hasfocus=false;
    function handle(sInput) {
        selTxt = document.selection.createRange()
        switch (sInput) {
            case "1":
                selTxt.text = '<u>'+ selTxt.text +'</u>';
                break;
            case "2":
                selTxt.text = '<i>'+ selTxt.text +'</i>';
                break;
            case "3":
                selTxt.text = '<b>'+ selTxt.text +'</b>';
                break;
            case "4":
                if (hasfocus) selTxt.text = '<img src="" alt="" name="">';
                break;
            default:
                break;
        }
    }
    </script>
</head>
<body>
<textarea id="edit" cols="50" rows="20" onfocus="hasfocus=true;" onblur="hasfocus=false;">
Her er der noget tekst....
</textarea><br>
<input type="button" value="Underline" onclick="handle('1')" style="width:100px;">&nbsp;
<input type="button" value="Italic" onclick="handle('2')" style="width:100px;">&nbsp;
<input type="button" value="Bold" onclick="handle('3')" style="width:100px;">&nbsp;
<input type="button" value="Image" onbeforeactivate="handle('4')" style="width:100px;">&nbsp;
</body>
</html>
Avatar billede =maddog= Nybegynder
08. juli 2002 - 19:27 #4
du bør i øvrigt tilføje if (hasfocus) til alle dine case, for at sikre at det bliver sat ind i textarea og ikke alle mulig andre steder.
Avatar billede voller Nybegynder
08. juli 2002 - 21:44 #5
mini-me> Tak for læsestoffet, det ser interessant ud.

=maddog=> Tak for koden, den virker fint. Har lige et lille bonusspørgsmål: Angående det at tilføje if (hasfocus) til alle cases. Det har jeg nu prøvet, men hvis jeg trykker på f.eks. italic-knappen uden at have markeret en tekst i textarea, bliver <i></i> sat ind foran italic i selve knappen. Dvs. at koden ikke bliver sat ind i textarea. Var det ikke det if (hasfocus) skulle sørge for? Hvis ja, hvad gør jeg så galt? Hvis nej, så undskyld en nybegynder, der har misforstået dig. :o)
Avatar billede =maddog= Nybegynder
08. juli 2002 - 22:11 #6
well. lav dine onclick om til onbeforeactivate og se vidunderet ske.
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