Text-Formatierung
Anton Brass
- html
Moin!
Ich sitze schon ein paar Tage an der Möglichkeit, dass ein Benutzer seinen Text formatieren kann, bevor er diesen abschickt.
Dazu benutze ich einen adaptierten WYSIWYG-Editor (funktioniert IE und Moz, fett kursiv und unterstrichen... mehr brauch ich net), der ein contendEditAble-Iframe nutzt.
Leider sind die HTML-Tags, die dieser produziert, sowas von browserabhängig, dass ich den (und wohl alle anderen) net gebrauchen kann. Ich brauche ein einheitliches System, um die gemachten Formatierungen später beim erstellen eines PDF-Dokuments mit JAVA zu parsen.
Da später Ärzte diese Eingabefelder nutzen werden, muss jede gemachte Formatierung auch sichtbar sein, eigene Syntax wie [B] [/B] sind der aller letzte Ausweg.
Gibt es irgendeine andere Möglichkeit markierte Texte per Klick zu verändern? Z.b. dass der Text erst im Textarea erstellt wird, man dann per Knopfdruck zum Formatieren kommt, und nur mit den Buttons markierten Text verändern kann, nichts anderes!
Gibt es einen WYSIWYG-Editor der immer den selben HTML-Code produziert, auch wenn man z.B. aus Word kopiert (oder wenigstens die Formatierung aus Word unterdrückt...)?
danke schonmal für die Hilfen!
Gruß
Anton
Lieber Anton,
wenn Du nur drei Formatierungsmöglichkeiten (fett, kursiv, unterstrichen) zulassen möchtest, dann sorge doch serverseitig dafür, dass abweichende (weil browserspezifische Differenzen) Lösungen "zurechtgebogen" werden! Eine serverseitige Verarbeitung nimmst Du ja sowieso vor, sonst wäre das komplette Unterfangen sinnlos...
Ich brauche ein einheitliches System, um die gemachten Formatierungen später beim erstellen eines PDF-Dokuments mit JAVA zu parsen.
[...]
Gibt es einen WYSIWYG-Editor der immer den selben HTML-Code produziert, auch wenn man z.B. aus Word kopiert (oder wenigstens die Formatierung aus Word unterdrückt...)?
Ich benutze den TinyMCE. Der ist sehr umfangreich konfigurierbar, bis hin zu erlaubten/unerlaubten Tags und Umwandeln von z.B. <b> zu <strong> und <i> zu <em> und so weiter. Du findest diesen Editor auf http://tinymce.moxiecode.com. Für Deine Zwecke wird wohl das simple example das geeignetste sein.
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Moin Felix,
diese serverseitige Bereinigung ist aus folgenden 3 Gründen schlecht:
1. Dem Benutzer wird trotzdem assoziert, dass der Text fett kursiv oder unterstrichen ist (wenn er z.B. aus Word kopiert).
2. Der Mozilla geht beim Formatieren mit den SPANs ganz anders vor als der IE. Beonsders auffällig bei verschaltenten Texten: B BI BUI BU B
3. Es gibt einfach zu viele Möglichkeiten wie ein Text in HTML formatiert werden kann, wenn man dem scheiss freie Hand lässt! :-)
-----------------------------------------------------------------------
Den TinyMCE schau ich mir mal an, hört sich ganz grob so an, wie ich es brauche, aber ich zweifel schon fast, dass er Word-Kopien ect. richtig macht.
Lieber Anton,
diese serverseitige Bereinigung ist aus folgenden 3 Gründen schlecht:
- Dem Benutzer wird trotzdem assoziert, dass der Text fett kursiv oder unterstrichen ist (wenn er z.B. aus Word kopiert).
... und wenn Du alles zur Bestätigung nocheinmal in einer ersten Zwangsvorschau bestätigen lässt?
Beonsders auffällig bei verschaltenten Texten: B BI BUI BU B
...verstehe ich jetzt nicht ganz...
- Es gibt einfach zu viele Möglichkeiten wie ein Text in HTML formatiert werden kann, wenn man dem scheiss freie Hand lässt! :-)
... dann verbiete es vollkommen!
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Nochmal Moin!
Versuch mit TinyMCE:
Ich gehe ins Word, mache einen Text mit 2 Spiegelstriechen:
Word macht automatisch eine Einrückung. Nun kopiere ich diesen Text in TinyMCE, das kommt dabei raus:
<p><!--[if !supportLists]--><span>-<span style="font-family: "Times New Roman"; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal"> </span></span><!--[endif]--><strong><span>fdfdgsd</span></strong></p><p><span>-<span style="font-family: "Times New Roman"; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal"> </span></span><!--[endif]--><strong><span>dsgdsgdsg</span></strong> <strong><span style="font-size: 12pt; font-family: "Times New Roman""><br /></span></strong></p>
Leider wird hier kein Abstaz mit <br/> gemacht, sondern mit <p>, aber </p> bedeutet ja nicht jedes mal <br>, oder?
Lieber Anton,
Word macht automatisch eine Einrückung. Nun kopiere ich diesen Text in TinyMCE, das kommt dabei raus:
<p><!--[if !supportLists]--><span>-<span style="font-family: "Times New Roman"; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal"> [...]
das lässt sich verhindern, indem man das <span>-Tag in den Einstellungen verbietet. Ebenso das "class"-Attribut kann man verbieten. Dann bleiben dem TinyMCE kaum noch Möglichkeiten, die Formatierung zu übernehmen. Auch Kommentare kannst Du ja spätestens serverseitig entfernen. Das Insert-From-Word-Plugin kannst Du im "word example" ausprobieren.
Wenn Du eine ungeordnete Liste (z.B. mit Spiegelstrichen) möchtest, dann musst Du das auch in Word richtig eingeben, sonnst macht der TinyMCE auch nichts anderes, als Word: Drei einzelne Absätze mit einem Minuszeichen am Anfang erzeugen.
Leider wird hier kein Abstaz mit <br/> gemacht, sondern mit <p>, aber </p> bedeutet ja nicht jedes mal <br>, oder?
Ein "Absatz" wird auch nicht mit einem Break (<br> oder <br /> - je nach Doctype) "gemacht"! Ein Absatz beginnt mit <p> und endet mit </p>. Ein Break ist nur ein Zeilenumbruch.
Wenn Du Die Doku zum TinyMCE gefunden hast, dann steht da irgend etwas von "valid elements" und wie man ihre Attribute zulässt oder eben nicht. Wenn Du dazu Hilfe brauchst, dann gibt es dort schon ein großes Board, in dem andere User schon Fragen gestellt (und oft auch beantwortet bekommen) haben. - Ansonsten meldest Du Dich wieder hier! ;-)
Liebe Grüße aus Ellwangen,
Felix Riesterer.