J’ai un site web qui utilise Vue.js et un forum sur Discourse. J’essaie d’insérer du JavaScript dans un fichier de modèle afin de connecter les commentaires du forum à une page spécifique de mon site Vue.js, mais je rencontre l’erreur suivante :
Les modèles ne doivent être responsables que de la liaison de l'état à l'interface utilisateur. Évitez de placer des balises ayant des effets de bord dans vos modèles, comme <script>, car elles ne seront pas analysées.
J’ai essayé de changer text/javascript en application/javascript, mais lorsque j’essaie de le rendre, je reçois l’erreur :
- expression invalide : parenthèse manquante après la liste des arguments dans
" \n DiscourseEmbed = { discourseUrl: 'https://forum.epicseven.ru/',\n \ndiscourseEmbedUrl: '\"+_s(url absolute=\"true\")+\"' };\n\n (function() {\n \nvar d = document.createElement('script'); d.type = \n'application/javascript'; d.async = true;\n d.src = \nDiscourseEmbed.discourseUrl + 'javascripts/embed.js';\n \n(document.getElementsByTagName('head')[0] || \ndocument.getElementsByTagName('body')[0]).appendChild(d);\n })();\n"
Expression brute : DiscourseEmbed = { discourseUrl: \n'https://forum.epicseven.ru/',\n discourseEmbedUrl: '{{url absolute=\"true\"}}' };\n\n (function() {\n var d = document.createElement('script'); d.type = \n'application/javascript'; d.async = true;\n d.src = DiscourseEmbed.discourseUrl + 'javascripts/embed.js';\n (document.getElementsByTagName('head')[0] || \ndocument.getElementsByTagName('body')[0]).appendChild(d);\n })();
Si je comprends bien, l’utilisation de fichiers JS dans Vue.js n’est autorisée que depuis le domaine à partir duquel l’appel est effectué. Or, mon forum est configuré sur un sous-domaine.
Comment puis-je corriger cette erreur ? Peut-être devrais-je essayer d’utiliser une autre partie du code ?