Avatar billede andreas134 Nybegynder
23. januar 2011 - 00:37 Der er 12 kommentarer

Skifte farve på enkelte ord i et textarea

Nu har jeg siddet og kigget lidt rundt omkring. Nogen siger det ene andre siger noget andet.


Kan det lade sig gøre at farve enkelte ord i et textarea.
eks: (jeg bruger klammer (kun her) i stedet for større end og mindre)

[textarea]Bananer er gule fordi det er bananer.[/textarea]


Så er det at jeg gerne vil have ordet 'Bananer' farvet gult.

Hvis der ikke er en ligetil løsning så er jeg stadig frisk på noget mere langhåret :)
Og hvis man ikke kan det med javascript men et andet sprog så er jeg også frisk :)

Alle forslag/input er velkomne.
Avatar billede HBP2 Praktikant
23. januar 2011 - 09:03 #1
Det er muligt, men jeg tror det nemmeste er hvis du bruger et passende javascript bibliotek - der findes masser af dem. Jeg bruger selv PunyMCE:
https://github.com/spocke/punymce/wiki
Avatar billede BufferUnderrun Nybegynder
23. januar 2011 - 10:39 #2
Du kan ikke med normale teknikker (CSS/span), men du kan lave teksten overlay'ed hen over textarea'et, og dermed bruge alm. HTML tags til at farve.

Når du så trykker på teksten, skal lidt javascript gemme den div med tekst der floater hen over, og sætte fokus på textarea. Således kan folk stadig redigere.

Teksten der redigeres vil dog stadig ikke være farvet.
Avatar billede andreas134 Nybegynder
23. januar 2011 - 11:33 #3
Okay et bibliotek. Tror du man kan ikke bruge jQuery til det?  Fordi det kender jeg:)
Avatar billede BufferUnderrun Nybegynder
23. januar 2011 - 11:57 #4
Det vil helt klart være nemt med jQuery.

Du skal bare lave en hidden div med den farvede tekst, som så gøres synlig når siden loader (pseudo-kode):

<div style="position:relative">
<div style="position:absolute;top:0;right:0;display:hidden" id="floating">tekst med <span style="color:orange">orange tekst</span> i midten</div>
<textarea>tekst med orange tekst i midten
Avatar billede HBP2 Praktikant
23. januar 2011 - 11:57 #5
Der findes jQuery biblioteker til det:

http://www.queness.com/post/212/10-jquery-and-non-jquery-javascript-rich-text-editors

men jeg kan ikke sige noget om dem. PunyMCE er sikkert det nemmeste og mindste. Tror jeg.
Avatar billede BufferUnderrun Nybegynder
23. januar 2011 - 12:00 #6
Hov, min browser cuttede lige halvdelen af eksemplet :(

resten er:

</textarea>
</div>

Når siden loader køres:

$("#floating").toggle().bind('click', function() { $(this).toggle(); $("textarea").select(); });

Så vises div'en over textarea ved load, og når der klikkes på den bliver den gemt, og teksten i textarea bliver selected.

Ideen er at teksten i div og textarea skal ligne hinanden 100% så man ikke opdager det. Det kan du klare med noget CSS :-)
Avatar billede andreas134 Nybegynder
23. januar 2011 - 14:04 #7
#6 men det løsning viser det jo ikke mens man skriver vel?
og det var en ting jeg gerne vil have :) (det sagde jeg vist ikke)
Avatar billede andreas134 Nybegynder
23. januar 2011 - 14:27 #8
#1 jeg har kigget lidt på det nu.
kan du komme med et eksempel på det ? (kode)
Avatar billede intenz Novice
23. januar 2011 - 22:37 #9
Lad være med at lav en teksteditor selv, med mindre du virkelig er inde i sproget (javascript), det vil være meget komplekst at få bare et fornuftigt resultat.

Hvis du virkelig vil gøre det her, kunne en pseudo-være at finde en færdig editor (ckeditor, tinymce, whatever...).

Finde ud af om nogen af dem kan løse dit problem ved at kigge på deres API.

Hvis ikke, må du finde ud af hvordan du kan få en event til at affyre, onkeydown f.eks., hvor du kunne tjekke om 'bananer' var skrevet (med regex). Hvis det er, må du finde ud af hvordan du kan manipulere din editors overlay (som #5 beskrev) til at vise farven gul.

Jeg ville overveje om det var din tid værd. Det må næsten være overkill i forhold til at ville "have ordet 'Bananer' farvet gult".
Avatar billede HBP2 Praktikant
23. januar 2011 - 23:16 #10
Der er eksempler i det første link jeg sendte - du skal bare downloade biblioteket og installere det det rigtige sted.
Avatar billede andreas134 Nybegynder
25. januar 2011 - 21:27 #11
Jeg skylder vel nok at sige hvad det faktisk skal bruges til.
Nu ved jeg ikke om i kender wordpress.
Men der en editor til at redigerer php filer og så videre.
Men jeg synes at den er kedelig uden farver, og det er også nemmere at overskue en kode hvis der er nogle farver i koden.

Så jeg vil gerne lave et en kode-editor med farver.

Det kan være det ændre situationen lidt. :)
Avatar billede andreas134 Nybegynder
25. januar 2011 - 21:30 #12
efter hvad i har sagt og så videre tror jeg at jeg finder en færdig online tekst-editor og integrerer den i et plugin.

Har i nogen i kan anbefale?
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