Zum Inhalt springen

Frontend Plugin ändert JavaScript String! Was tun?

Erstellt am 4. Oktober 2006 · 2 Antworten · letzte Antwort am 7. Oktober 2006

Tags: Frage

boogalo79 ·

Hallo,

ich möchte ein dynamisch erzeugtes JavaScript am Ende meiner html Ausgabe meines FE Plugins einfügen.

Ich erzeuge das Script etwa wie folgt:

$content .= $this->getJsString();

Die Funktion liefert mir den korrekten JS String zurück:

"<label id=\"lblArtist\" for=\"txtArtist\">Künstler:</label>\n<input id=\"txtArtist\" class=\"txt\" type=\"text\" name=\"artist\" value=\"\"/><br/>\n";

Nach Erzeugung der Seite im Frontend ändert sich die Ausgabe leider wie folgt:

"<label id="\" lblartist="" for="\" txtartist="">Künstler:</label>\n<input id="\" txtartist="" class="\" txt="" type="\" text="" name="\" artist="" value="\" /><br />\n"

Woran liegt das? Was macht Typo3 da zwischen dem Return aus main und der Content Ausgabe? #angry#

steffenk ·

versuchs mal mit stripslashes()

Ausserdem bearbeitet Typo3 die HTML-Ausgabe, wenn z.B. xhtml_cleaning angeschaltet ist.

boogalo79 ·

Ist xhtml cleaning standardmäßig aktiviert?

Der Rückgabewert der Funktion ist schon korrekt (Siehe JS Code 1).
Dort habe ich die Slashes per addslashes eingefügt.
Der String soll per JavaScript document.getElementById([id]).innerHTML in der Seite angezeigt werden. Dazu brauche ich slashes, oder vielmehr backslashes. Mit stripslashes() werden aber *ALLE* slashes entfernt.

Leider wirft typo3 aber den String nach der Rückkehr aus der plugin main Funktion noch durcheinander (Siehe JS Code 2). Die Frage ist, wie kann man das verhindern?

Man könnte den String mit single quotes umschließen, aber dann kann man auch keine escape Zeichen wie \n verwenden.