Dans le modèle suivant, j'utilise trois variables: p>
ga_tracking_id code>,
cc_popup_bgcol code> et
cc_popup_txtcol code>
<script src="fileadmin/templates/js/cookieconsent.min.js" data-cfasync="false"></script>
<script>
function loadGAonConsent(){
var gs = document.createElement("script");
gs.async = true;
gs.src = "https://www.googletagmanager.com/gtag/js?id={GA_TRACKING_ID}";
var h = document.getElementsByTagName("head")[0];
h.appendChild(gs, h);
gs.onload = function (){
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments)};
gtag('js', new Date());
gtag('config', '{GA_TRACKING_ID}', { 'anonymize_ip': true });
testfunc('{CC_POPUP_BGCOL}', '{CC_POPUP_TXTCOL}');
}
}
if(document.cookie.split(';').filter(function(item){return item.indexOf('cookieconsent_status=allow') >= 0}).length)
loadGAonConsent();
window.cookieconsent.initialise({
"palette": {
"popup": {
"background": "{CC_POPUP_BGCOL}",
"text": "{CC_POPUP_TXTCOL}"
},
"button": {
"background": "#4b81e8"
}
},
"theme": "classic",
"type": "opt-in",
"content": {
"policy": "policy",
"message": "message",
"deny": "deny",
"allow": "allow",
"link": "link",
"href": "#"
},
onStatusChange:function(status,chosenBefore){
if(this.hasConsented())
loadGAonConsent();
}
});
</script>
3 Réponses :
Le fluide ne peut pas savoir si vos supports bouclés appartiennent au fluide ou à JavaScript. Donc, il s'arrête s'il ne peut pas résoudre un. P>
Essayez d'ajouter {whest-> f: format.raw ()} code>, dans votre cas
'{cc_popup_bgcol-> f: format.raw ()}' code> et ainsi de suite. p>
Ça ne fonctionne pas: code code> arrière-plan ":" {cc_popup_bgcol-> f: format.raw ()} ",
/ code code>
L'avez-vous utilisé sur toutes les variables?
Oui mais maintenant, il fonctionne avec
Hmm, pas si agréable de lire dans le code mais bon à savoir. Quoi qu'il en soit, @jonas a raison, les supports bouclés non fluides sont terribles et doivent être évités. J'ai fait de moi une fenêtre personnalisée pour rendre des variables fluides à un objet JS.
Si c'est un modèle de fluide, je vous recommande vivement de ne pas compter sur le remplacement de vos variables. Dans un modèle qui comprend JavaScript (surtout avec Évitez-le si possible. P> Je suggère de supprimer les marqueurs de variable de Votre JavaScript et les mettez-les plutôt en HTML et chargez-les via JavaScript à partir de là. p> comme exemple: p> voir https://developer.mozilla.org/en-us/docs/learn/html/howto / Use_data_attributes p> p> { code>), l'analyseur de fluide est très peu fiable. Même si vous avez travaillé, cela ne signifie pas que cela fonctionnera après une mise à jour de fluide / typo3 ou même sur un serveur différent.
Je suis d'accord avec Jonas Eberle que la plupart des JS devraient être sur un fichier .js et inclus dans le modèle (avec typoscript ou avec une étiquette de script dans le modèle de fluide). Les variables JS doivent également être définies dans le modèle Typoscript (à l'aide des propriétés dédiées de la page). Vous pouvez également lire cette partie de la documentation: docs.typo3.org/m/typo3/guide-extbasefluid/master/en-us/fluid / ... où la question spécifique de JS en fluide est adressée, avec toutes les solutions de contournement possibles.
Vous pouvez tromper le fluide en mode analyse en plaçant une étiquette de fluide à l'intérieur de la balise de script. Ce faisant, j'essaie toujours de séparer les définitions variables du code JavaScript réel autant que possible.
Essayez quelque chose lier ceci. p>