Smilies in Textfeldern berreits als Bilder anzeigen

Man könnte sicher entsprechende Sachen im Editor unterbinden.

Da eine schlussendliche Verarbeitung der Eingaben jedoch ohnehin serverseitig erfolgen muss, ist es jedoch vorteilhafter, das dort zu entfernen, z.B. mit regulären Ausdrücken.
 
Du weist also nicht zufällig, wie man das unterbindet, oder? :rolleyes:
Ist mein Code von oben soweit in Ordnung?
Ich bin nach den Anleitungen im msdn und von midas gegangen. Es funktioniert so im IE als auch unter Mozilla problemlos und entspricht den Spezifaktionen auf mozilla.org.

Muss ich auch zwnagsweise einen iframe benutzen? Wäre ein div-Container nicht auch möglich?
 
Alles klar :)
Ein Frage hab ich allerdings immer noch.
Bei Druck auf Enter wird ja immer eine zeile übersprungen - wie von Editoren gewohnt.
Ist es irgendwie möglich, einen weichen Zeilenumbruch (Shift+Enter) zu erzwingen, so dass der Zeiger einfach nur in die nächste Zeile springt?
 
Ich hab jetzt einfach noch ein wenig weiter probiert und stehe nun vor neuen Problemen... :rolleyes:
Das mit den Smilies funktioniert jetzt weitestgehend.

http://www.alkbrueder.de/2005/signGB.php

Wenn man nun allerdings irgendwo auf der Seite klickt, so wird der Smily an dieser Stelle und nicht im IFrame eingefügt :confused:
Ich habe absichtlich nicht deinen Code 1:1 übernommen, da ich zum Üben erstmal nur das allerwesentlichste einbauen wollte.
Wo liegt mein Fehler?

Wie kann ich ausserdem die Hintergrundfarbe und Größe, Aussehen der Schrift im IFrame ändern?
 
Zuletzt bearbeitet:
Zu den Smileys ausserhalb des <div>'s... du musst vor execCommand() den focus() an das <div> übergeben....

Zu den Formaten.... dafür gibts die Command-Identifier, Details dazu stehen auf den von mir verlinkten Seiten.

Prinzipiell... da du jetzt ein <div> und kein iFrame mehr verwendest, gibt es auch kein "contentWindow" mehr.

Die Kommandos musst du direkt im "document" ausführen, das <div> kannst du per
Code:
document.all.htmlbox
..ansprechen... wenn du ihm bspw. den Fokus übergeben musst.

Zu dem Zeilenumbruch... mann kann da Shift/Enter verwenden.
Enter alleine erzeugt halt wie in anderen Editoren einen neuen Absatz.

Wenn dir dieses Verhalten nicht gefällt.... im IE könnte man im Editor die Enter-Taste abfangen und stattdessen per "pasteHTML" ein <br> einfügen.
...oder halt bei der serverseitigen Verarbeitung leere Absätze durch ein <br> ersetzen.

Threads zum Thema "Tastatureingaben abfangen" solltest du hier einige finden... eine Reihe davon bezogen sich auch speziell auf die[ENTER]-Taste.
 
Die divs hatte ich gestern nur zum Probieren eingesetzt. Jetzt isses wieder nen iframe, da die divs ja im Mozilla ja leider nicht funktionieren :(
Mich interessiert jetzt aber immer noch, wie ich das Aussehen des Frames anpassen kann. Mir gehts hier besonders um Schriftart/-farbe/-größe und die Hintergrundfarbe des iframes. Ausserdem soll der Text auch wirklich links oben beginnen und nicht mit 1cm Abstand vom Rand...
Wie schaff ich das? Mit CSS scheints nicht ohne weiteres zu gehen. Gibt es ausser dem iframe noch eine Andere Technik, die auch im Mozilla funktioniert? Spans vielleicht?!
 
Ich hab grad mal versucht, den Hintergrund und die Schrift per backcolor etc zu definieren.
Leider find ich nirgends eine Erklärung, wie diese Commands angewendet werden müssen. Bei Moziila steht da imer nur "untested right now" :(
Kannst du mir da vielleicht helfen?
 
Ausserdem soll der Text auch wirklich links oben beginnen und nicht mit 1cm Abstand vom Rand...

Dafür gibts die marginheight-Angabe in iFrames.

Was die Schrift betrifft... das geht ganz normal, wie bei Mozilla und MS beschrieben
Code:
   execCommand('FontName',false,'Schriftart');

Zu der Hintergrundfarbe im Mozilla.... die Meldung ist doch eindeutig, oder :confused: ...sie steht zumindest nicht umsonst da, und dieser Hinweis steht auch bei der Kommando-Auflistung bei Mozilla.
Besorg dir einen aktuellen Mozilla,... da funktioniert beides.

Allerdings solltest du mal genau lesen, was diese beiden Kommandos in IE/Mozilla bewirken.... das unterscheidet sich nämlich.
 
Sorry, aber ich kann dir da absolut nicht mehr folgen.
Wo finde ich ich mal eine Auflistug der Commads für den IE und wie ich sie anwenden muss?
An welche Stelle muss ich die Hintregrundfarbe und Schrift festelgen?
Code:
document.getElementById("htmlbox").contentWindow.document.execCommand('FontName', false, 'Arial');
So stehts bei mir derzeit am Ende der init-Funktion - und es funktioniert nicht.
Wie muss das execCommand für backcolor aussehen?
Code:
document.getElementById("htmlbox").contentWindow.document.execCommand('backcolor', false, '#F5F5FF');
So gehts jedensfalls nicht.
 

Neue Beiträge

Zurück