Moin Leute,
wie sollte es anders sein, ich hab auch mal eine Frage bzw. eine Bitte um Hilfe an euch.
Und zwar gehe ich mal davon aus, dass ihr alle wisst, was BBcodes sind (wenn nicht, dann macht mal die Augen auf, sind direkt über dem Textfeld beim verfassen eines Beitrags zu finden
).
Wir haben in unserem IP.Board einen Satz benutzerdefinierter BBcodes angelegt, um den Usern die Möglichkeit zu geben eine Tabelle zu erstellen (bis jetzt bin ich zwar der einzige der das nutzt, aber das könnte sich ja noch ändern).
Allerdings ist so eine Anreihung von [table]-, [tr]-, [th]- und [td]-Codes nicht so jedermanns Sache, und deshalb wollte ich ein kleines Tool erschaffen, um ihnen unter die Arme zu greifen.
Was soll dieses Tool nun machen?
Erstmal soll der User es aufrufen und auf nen Button klicken, der ne Funktion durchläuft und abfragt, wie die Tabelle aussehen soll (Reihe, Spalten, Spaltenbreiten…), das erscheint mir aber als recht einfacher Teil und deshalb habe ich das erst einmal in den Hintergrund gestellt.
Womit ich begonnen habe, ist eine Seite zu erstellen, auf der es einen (div-)Vorschau Bereich gibt, sowie eine Textbox in der der BBcode editiert wird.
Nun soll eben genannte Funktion später mal in diese Textbox das BBcode-Konstrukt einfügen und automatisch eine weitere Funktion aufrufen(, die ebenfalls über einen Button erreichbar ist).
Diese Funktion wiederum soll nun den BBcode in den entsprechenden HTML-Code umwandeln, dafür habe ich mir als “einfache” Methode ausgedacht, dass der Text über das value-Attribut (Zwischenfrage: textarea ist ja ein HTML Element mit öffnendem und schließendem Tag, logischerweise würde doch innerHTML mehr Sinn machen, oder? Nur das funktioniert nur insofern, dass der Ursprüngliche Textinhalt ausgegeben wird.) der Textarea entnommen wird und mit mehreren .replace() Nutzungen abgeändert werden soll, bis es schließlich via innerHTML in den (div-)Vorschau Bereich geschrieben wird.
Gleiches soll andersherum auch funktionieren, der HTML Code sollte auch wieder in BBcode umgewandelt werden können, da der Nutzer die Tabelle bzw. den Inhalt einer Zelle auch ändern kann, indem er doppelt auf Entsprechende klickt und den Text editiert (Textbox erscheint in der Zelle), eine via onblur aufgerufene Funktion schreibt den Inhalt aus der Textbox wieder in die Zelle.
Nur bei diesen replace() Funktionen liegen meine Probleme, es wird nicht das ersetzt, was ich gerne hätte.
Da ich weiß, dass ihr mit Quelltext mehr als meinem ganzen Geschwafel etwas anfangen könnt,
hier ist was ich bisher zusammengebastelt habe (in txt Form, um das hier zu posten wäre es zu viel; ändert einfach die Endung des Links auf .html um die Seite selbst zu sehen). Ich weiß es ist noch nicht valide zu irgendeinem Standard, aber das kommt später, erstmal Zählen die inneren Werte
.
Hoffe ihr könnt mir ein Paar Denkanstöße geben,
LG, Mini-Me

.