WYSIWYG i JS - Del 3, WYSIWYG-kilde skift

Tags:    javascript
Skrevet af Bruger #4575 @ 24.10.2005

Oversigt


1. Visning af kilde
2. Kilde til WYSIWYG
3. Gemme indholdet?
4. Afslutning

1. Visning af kilde


Det at finde kilden af WYSIWYG-redigering er meget simpelt, da vi, hvis vi tænker os om, ved at kilden må ligge i elementets innerHTML-variabel.
Det eneste vi skal gøre for at få vist koden, er faktisk, at sikre os at '<'- og '>'-tegnene bliver lavet om, således at browseren ikke længere tolker det som HTML-kode:

Fold kodeboks ind/udKode 

Som i kan se, så er der ikke noget specielt svært ved at få vist kilden! Vi har den jo i forvejen, den skal bare ændres så den ikke længere tolkes som HTML, men tekst.

2. Kilde til WYSIWYG


Når nu vi har skiftet fra WYSIWYG til kilden, så kunne det måske også være meget rart at kunne gå tilbage igen?
Det er selvfølgelig også muligt, men denne process er lidt mere besværlig end før! Det skyldes, at vi bliver nødt til at bruge 2 forskellige metoder, afhængigt af om siden vises i FF eller i IE.

Men lad os da kigge på det:

Fold kodeboks ind/udKode 

Som i kan se, er dette lidt mere besværligt, men der er egentligt ikke noget desideret svært ved denne kode.

Nu kan vores editor altså redigere indhold og layout, vise den valgte formatering samt skifte mellem kilde og layout, men hvad så når vi ønsker at gemme indholdet?
Det er faktisk meget simpelt, når vi har getSource funktionen, så lad os kigge nærmere på dette!

3. Gemme indholdet?


Hvis vi ønsker at gemme indholdet af vores WYSIWYG-editor, giver det sig selv, at vi må bruge en form, som sender indholdet videre til en PHP/ASP-server, som herefter behandler det og gemmer det i en database.
Formen skal indholde 1 usynligt felt, som vi bruger til at smide indholdet i og 1 knap til at sende indholdet:

Fold kodeboks ind/udKode 

Nu mangler vi bare at få overført indholdet til textarea-feltet, når formen sendes. Dette gøres i onsubmit-eventet for formen, og vi benytter getSource funktionen til at hente indholdet:

Fold kodeboks ind/udKode 


4. Afslutning


Nu har i faktisk en færdig WYSIWYG-editor, og i kan selv lege videre med hvordan i kan lave ekstra features til den..!
Jeg kan i hvert fald nævne mange ting, som stadig kunne tilføjes:

- Understøttelse af tabeller
- Stave-kontrol
- Farve-dialog

Dette vil jeg dog ikke komme nærmere ind på her - Det vil jeg overlade til jer selv at lege med! Så må i selv finde en balance mellem hvad i ønsker jeres editor skal kunne og hvad i kan finde ud af!

Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.

Del også gerne artiklen med dine Facebook venner:  

Kommentarer (7)

User
Bruger #5800 @ 01.01.06 02:38
det er da også fint nok... bare synd det er ubrugeligt i xhtml sammenhæng, da innerHTML ikke fungere sammen med DOM.
User
Bruger #890 @ 14.03.06 20:27
Well, IE understøtter alligevel ikke xhtml sååå :)
User
Bruger #4907 @ 26.03.06 11:49
innerHTML fungerer nu sådan set sammen med XHTML (selvom det er sendt med en XML-mimetype) i Firefox, men det burde det dog næppe, og der er visse problemer med det. Det er dog ikke utænkeligt at de to kommer til at fungere fuldstændig sammen; faktisk arbejder Mozilla på sagen. Men personligt ville jeg nu nok foretrække at man kun kunne gå ad DOM-vejen...
User
Bruger #9674 @ 07.12.06 10:46
Lige den rigtige afslutning på artiklerne.

Har virkelig fået meget ud af dem, og syntes du er rigtig god til at beskrive hvad du gør, og så kommentere du også en masse hvilket er rigtig dejligt.

Giver fem for 3 rigtig gode artikler om er relevant emne og det er også godt beskrevet.
User
Bruger #9005 @ 03.06.07 14:58
mangler bare en direkte kode der er sat sammen, da jeg ikke synes du beskriver særlig godt hvor de forskellige ting skal sættes ind henne -,-

eller ikke en fuld kode bare beskriv hvor de forskellige ting skal sættes ind henne -,-
User
Bruger #12443 @ 18.03.08 13:27
Super artikel. Godt beskrevet.
User
Bruger #8985 @ 24.05.09 22:04
John Sørensen -> Du skal jo ikke kopiere koden. Eller det er naturligvis op til dig, men det lærer du jo intet af. Brug den hellere til at blive klogere, og en dag vil du af dig selv finde ud af, hvor de forskellige ting skal sidde.
Du skal være logget ind for at skrive en kommentar.
t