CNoetzel
Elite Observer

Migrationsproblem 4.2 nach 5.2: data-fs-template-id erzeugt invalides JavaScript

Jump to solution

Hallo werter Community,

wir stehen hinsichtlich der Migration FS 4.2 - FS 5.2 vor einem Problem.

Dieses äußert sich wie folgt. In unserem Projekt gibt es eine Seitenvorlage "core_functions" welche in den Globalen Einstellungen genutzt wird und eine Vielzahl an JavaScript-Funktionen enthält. Unter anderem taucht dort folgende Zeile auf (eingebettet in ein <script>-Element):

var label = ...
if(label != null){
        label.innerHTML = "<strong>" + label.innerHTML + '</strong>';
}

Die Seitenvorlage wird über $CMS_VALUE(#global.gca("core_functions"))$ in alle anderen Seitenvorlagen eingebunden, damit die definierten Funktionen überall zur Verfügung stehen.

In FS 4.2 wurde die JS-Funktion wie folgt ins JSP gerendert:

var label = ...
if(label != null){
  label.innerHTML = "<strong>" + label.innerHTML + "</strong>";
}

In FS 5.2 sieht die JSP-Ausgabe hingegen so aus:

var label = ...
if(label != null){
label.innerHTML = "<strong data-fs-template-id="eyJ0ZW1wbGF0ZVNldElkIjoxMjc0NzA5LCJ0ZW1wbGF0ZUlkIjoxMjc0NzEzLCJ0ZW1wbGF0ZUNvbHVtbiI6MzEsInRlbXBsYXRlTGluZSI6MTA0Mn0=">" + label.innerHTML + "</strong>";
}

Es kommt zu einem Syntaxfehler, da das <strong>-Element in JavaScript-Code verändert wird (Template-ID wird hinzugefügt) und diese Änderung invalides JS erzeugt. (nach <strong data-fs-template-id= wird ein Semikolon erwartet). Ergebnis ist, die Webseite funktioniert nicht richtig.
Ich nehme an, dass das Eintragen der Template-ID automatisch über das  $CMS_VALUE(...)$ erfolgt und für den ContentCreator zwingend erforderlich ist. Gibt es dennoch irgendwelche Flags, mit denen das Eintragen der ID unterbunden werden kann? Habt ihr Erfahrungen mit dieser Problematik?

Zu dem Problem kommt es immer dann, wenn HTML-Tags in JavaScript-Code genutzt werden. Derzeit behelfen wir uns mit einfachen Hochkommata statt Anführungszeichen. Aus unserer Sicht ist das nur eine Bekämpfung der Symtome, da wir nicht wissen an wie vielen Stellen es zur gleichen Problematik kommen wird.

Freundliche Grüße

Carsten Noetzel

0 Kudos
1 Solution

Accepted Solutions
feddersen
Community Manager

Der Code wird für den Template-Inspektor gebraucht und kann deaktiviert werden, siehe https://community.e-spirit.com/message/26206#26206

View solution in original post

0 Kudos
2 Replies
feddersen
Community Manager

Der Code wird für den Template-Inspektor gebraucht und kann deaktiviert werden, siehe https://community.e-spirit.com/message/26206#26206

0 Kudos

Vielen Dank, schön wenn Probleme sich so einfach lösen lassen Smiley Happy

0 Kudos