Hi Jürgen,
Also ich habe es jetzt noch einmal probiert und dabei festgestellt das es im IE (6) funktioniert aber in einem richtigen Browser Opera,Firefox,SeaMonkey,usw. funktioniert es dagegen nicht
'undefined' function.dazu müsste ich mehr von deinem java-, javascriptcode kennen.
Hast du etwas online, oder kannst zumindest die wesentlichen Teile *.java und *.html hier posten?Wie kann ich das Browserübergreifend gestalten?
Eigentlich genau so. Das Applet auf meiner Seite funktioniert nach dem gleichen Prinzip.
Wiso funktioniert es dann bei mir nicht?
also ich poste hier mal die wesentliche funktion von meinem Applet
komplett posten wäre unsinnig (1200 Zeilen in der "komprimierten" version). Online geht zur Zeit nicht sorry.
public String parseOut() {
String result = new String("");
String lastColor = new String("");
boolean lastBold = false, lastItalic = false, lastUnderline = false;
listElement curElem = null; /* Das Listen-Element, die Liste besteht aus 2 Klassen einmal die Hauptklasse die, die Liste verwaltet und einer Klasse die einen Knoten,die Daten darstellt */
for(int i = 0; i < TextArray.Num; i++) {
/* TextArray ist meine Liste, der Name ist unpassend aber ich habe ihn noch nicht geändert und der Compiler hat sich auch noch nicht beschwert ;) */
curElem = TextArray.getElement(i);
if(curElem == null) { break; } /* sollte nicht vorkommen, ist nur zur sicherheit, Wenn die TextArray.Num nicht stimmt gelangt er möglicher weise bis übers Ende hinaus dort wird dann null zurückgegeben*/
if(lastBold) { /* Diese Konstruktionen basieren auf der Tatsache das ein voriges Zeichen anders als das jetzige formatiert ist, ich finde das diese Idee nicht schlecht ist auch weil sie sehr zuverlässig arbeitet */
if(!curElem.getBold()) {
result += "[/b]";
lastBold = false;
}
} else {
if(curElem.getBold()) {
result += "[b]";
lastBold = true;
}
}
if(lastItalic) {
if(!curElem.getItalic()) {
result += "[/i]";
lastItalic = false;
}
} else {
if(curElem.getItalic()) {
result += "[i]";
lastItalic = true;
}
}
if(lastUnderline) {
if(!curElem.getUnderline()) {
result += "[/u]";
lastUnderline = false;
}
} else {
if(curElem.getUnderline()) {
result += "[u]";
lastUnderline = true;
}
}
if(lastColor == "") { // 'übersetzt' die Farben
if(curElem.getColor() != "") {
if(curElem.getColor().equals("Rot")) {
result += "[color=#FF0000]";
} else if(curElem.getColor().equals("Grün")) {
result += "[color=#00FF00]";
} else if(curElem.getColor().equals("Blau")) {
result += "[color=#0000FF]";
} else if(curElem.getColor().equals("Gelb")) {
result += "[color=#FFFF00]";
} else if(curElem.getColor().equals("Weiss")) {
result += "[color=#FFFFFF]";
} else if(curElem.getColor().equals("Schwarz")) {
result += "[color=#000000]";
} else if(curElem.getColor().equals("Lila")) {
result += "[color=#FF00FF]";
} else if(curElem.getColor().equals("Grau")) {
result += "[color=#C4C4C4]";
} else if(curElem.getColor().equals("Cyan")) {
result += "[color=#00FFFF]";
} else if(curElem.getColor().equals("Braun")) {
result += "[color=#A52A2A]";
} else if(curElem.getColor().equals("Orange")) {
result += "[color=#FFA500]";
} else if(curElem.getColor().equals("Rosa")) {
result += "[color=#FF69B4]";
} else {
result += "[color=#000000]";
}
}
} else {
if(curElem.getColor() == "") {
result += "[/color]";
}
}
if(curElem.getChar() == '\n') { // LF \n ascii 13 benutze ich als trennzeichen für die Zeilen, eignet sich hier sehr gut, weil es dafür gedacht ist und es in ein char passt
result += "[br]";
} else {
result += String.valueOf(curElem.getChar());
}
}
return result; /* Das bekommt Java-Script speichert es ins <textarea> der Alternativen Methode und gelangt so an PHP und schließlich in die Datenbank */
}
Kurz was diese Funktion macht:
Sie bastelt aus einer einfach verketteten Liste einen Text der mit [] code-tags formatiert wird.
Das Applet ist ein kleiner(klein ist relativ) Editor der es erlaubt einen Text so zu schreiben und formatieren wie er letztendlich auf der Seite auch aussehen wird.
Also es sind dann keine [] Tags beim schreiben mehr zu beachten.
Wenn jemand kein Java hat oder es deaktiviert hat, bekommt er nur die "alte" Methode zu Gesicht.
Die gleiche Funktion gibt es auch umgedreht die einen String parst und ihn in die Liste packt. Wenn es nötig ist kann ich die ja auch posten.
Der Editor funktioniert soweit sehr gut.
Jetzt muss ich eben nur noch die Funktionalität einbauen das ich von der Datenbank -> nach HTML,JavaScript -> ins Applet komme und umgedreht. Eben was die 2 Funtkionen im Applet erledigen.
Stellt sich eben nur die Frage des Wie?
Gruß jürgen
(Ich sollte mal meinen Namen richtigschreiben aber irgendwie fällt es mir schwer mir diese Schreibweise abzugewöhnen.)