[TYPO3-german] Javascript-Output mit Extbase?

Dr Dieter Porth typo3 at mobger.de
Tue Mar 31 09:02:47 CEST 2015



Am 30.3.2015 um 17:08 schrieb Stephan Schuler:
> Hallo zusammen.
>
>
> stdWrap.replacement bringt erhöhtes Fehlerpotenzial mit. Es *kann*
> funktionieren, aber die Wahrscheinlichkeit dass das erzeugte JS früher
> oder später doch falsch wird ist einfach recht groß.
> Zumal man für gewöhnlich keinen stdWrap um einzelne Fluid-Variablen
> macht, wenn man Controllerinhalte an Fluidtemplates übergibt. 
Stimmt. Aber die Integration von Text als JavaScript-Variable in ein
HTML-Template ist auch kein alzu häufiger Fall, so dass man die
unmodifizierte, vielleicht noch wonaders im Template verwendete
Fluid-Variable auch als Argument an ein f:cObject übergibt, welches so
(sehr spät) erst im Template die Konvertierung per std.replacement durch
verweis auf entsprechenden TypoScript-Code einfordert.

  var subject_c1 = "Ein Event \u0022à titre d\u0027\u000Aillustration\u0022 in meinem internationalen Kalender.\u005C\u000A";

  var subject_c2 = 'Ein Event \u0022à titre d\u0027\u000Aillustration\u0022 in meinem internationalen Kalender.\u005C\u000A';


> Ich verwende zum Beispiel folgende Überschrift, um mal die
> Fehlerquelle zu verdeutlichen:
> > Ein Event "à titre d'illustration" in meinem internationalen Kalender.
>
> Das JavaScript dazu hat dann zwei Möglichkeiten:
> https://gist.github.com/anonymous/2db912e41fddcd088b8c
>
> Ganz besonders schön wird es, sobald ich damit rechnen darf, auch
> Backslashes in den Subjects zu finden. Dann darf ich die nämlich auch
> erst noch maskieren. Nur tu ich mich da gerade mit einem Beispiel
> schwer.Um Hochkommata in einem Text für eine Javascript-Variabel in
> einem HTML-Template zu maskieren hat man neben den beiden von Stephan
> genannten Codierungsvarianten auch noch eine dritte Möglichkeit
Der Link enthält folgendes Beispiel

<script type="text/javascript">
var subject_a = "Ein Event \"à titre d'illustration\" in meinem
internationalen Kalender.";
var subject_b = 'Ein Event "à titre d\'illustration" in meinem
internationalen Kalender.';
</script> Um Hochkommata in einem Text für eine Javascript-Variabel in
einem HTML-Template zu maskieren hat man neben den beiden von Stephan
genannten Codierungsvarianten auch noch eine dritte Möglichkeit, wobei
man die richtige Reihenfolge (\ = \u005C\u000A), (" = \u0022), (' =
\u0027\u000A) beachten sollte:

<script type="text/javascript">

var subject_c1 = "Ein Event \u0022à titre
d\u0027\u000Aillustration\u0022in meinem internationalen
Kalender.\u005C\u000A";

  var subject_c2 = 'Ein Event \u0022à titre d\u0027\u000Aillustration\u0022 in meinem internationalen Kalender.\u005C\u000A';
</script>

(Das Subject_c enthält im Gegensatz zu Subject_a/b am Ende zusätzlich ein \-Zeichen.)

Dieter

-- 

Dr. Dieter Porth -
Mein kleines TYPO3-Labor: http://www.mobger.de/



More information about the TYPO3-german mailing list