16. oktober 2004 - 21:13Der er
5 kommentarer og 1 løsning
Scriting af en WYSIWYG, "command fri"
Jeg er så småt gået i gang med at lave min egen WYSIWYG Editor, men har adskillige broblemer med at få den til at gøre hvad jeg vil...
Jeg kan sagtens få den til at lave en text fed osv... også at fjerne det igen, hvis jeg bruger komandoen "bold" på et Textrange... men mit store problem er at den ikke lever op til ønsket om at det skal være xHTML, da den ved den komando giver en <STRONG></STRONG>, ikke fordi Strong ikke kan bruges, men fordi det står med Store bogstaver, og xHTML skulle gerne være med små...
Desuden bryder jeg mig ikke om Strong, men hellere <b>, jeg fant så ud af hvordan man kunne ændre i det uden at bruge execCommand, nemlig med "pasteHTML", men igen laver den åbenbart alt HTML til store bogstaver, fx:
tr.pasteHTML("<b>" + tr.text + "</b>");
Når jeg Sender det bliver det til <B>"text"</B>, rimelig belastende, det kan selvfølgelig rettes med en Replace i ASP, PHP eller JSP eller hvad man måtte ønske...
Men det ville være rart at være fri for det...
Desuden, så bliver der åbenbart et problem med at skulle fjerne <b> tagsne, for hvis man markere den samme text, er det texten der kommer med, men ikke tagsne...
Det skulle altså gerne være sådan at hvis man har følgende eksempel:
Dette er Bold Tekst ; Hvor Ordet Bold er fed (<b>Bold</b>)
Og at man markere hele setningen får man:
Dette er <b>Bold</b> Tekst ;
Eller bare markere Bold:
<b>bold</b> ;
Da jeg ellers ikke vil kunne gå ind og se om en text allerede er Bold, for så at fjerne det istedet for at tilføje det....
Al HTML-opretning bør først foretages ved upload - ellers roder du dig ud i et endeløst loop af cowboy-hacks, der skal få editoren til at opføre sig som forventet.
Et andet godt eksempel er linieskift. Du kan løbende skifte <p></p> ud med <br> - men så kan du pludselig ikke bruge <li></li>, uden at skulle til at ophæve udskiftningen af <p> .... og koble den til efterfølgende. Og det medfører flere problemer endnu ;o)
Hvorfor i øvrigt udskifte <strong>? <b> og <i> er 'gamle' tags ... <strong> og <em> er afløserne. Det virker lidt pudsigt, at du bruger 'gammel' HTML i din XHTML :)
olebole >> Ideen var at <b> er 5 karaktere mindre end Strong, i en mindre end em, men i sidste ende er det faktisk ikke det der er den store pointe, jeg ville sådan set bare have styr på hvad det er min "WYSIWYG" gør, så jeg bestemmer over den, og ikke sådan at JavaScript bestemmer over mig...
Om ikke andet vil jeg kunne angive nogle ting i StyleSheet med Span's om jeg havde lyst... bare for at være "in Control"...
Den anden ting er jo at den placere "tagsne" skødesløst...
Altså fx:
<STRONG>en <EM> tekst </STRONG> som </EM> <- det er jo heller ikke velset af xHTML,
det skulle udføres med 2 af det ene tag, fx:
<strong>en </strong><em><strong> tekst </strong> som </em>... osv
Ja, du har ret ... det er noget frygteligt lort, MS har smidt på gaden - men det er altså vilkårene, hvis man ikke betaler for ordentlig software.
Du kan sagtens rette op på HTML'en, men det går helt sikkert galt, hvis du forsøger at gøre det løbende - det får du kun noget brugbart ud af gøre, når dokumentet er færdigt.
Da du jo formodentlig ikke skal bruge hele dokumentet - men kun body'en - er det ikke svært at tilføje stylesheets ... du kan bare skrive ind i en template med stylesheets :)
olebole >> Ja det kan der jo så være noget om... Ang style Sheets, var det mere løbende, men nu er jeg jo slet ikke kommet så langt endnu, så den tid den sorg... Men bryder mig gennerelt bare mere om Stylshéets, fx ved tabeller, at angive højde og brede i SS det samme med font og font størelse... alt den slags ting...
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.