Javascript ne se réexécute pas entre différentes pages

Bonjour à tous,

J’ai développé un composant de thème qui tourne en utilisant la bibliothèque swiper.js. Dans la balise head de mon composant, je charge les fichiers JS/CSS de swiper via un CDN et je déclare également l’élément sur la page comme un swiper dans une fonction window.ready.

Le problème que je rencontre est que le carrousel fonctionne correctement lorsque vous accédez directement à cette page, mais si vous cliquez sur un lien du site Discourse qui vous emmène sur cette page, la première diapositive se charge mais elle est statique et ce composant ne s’anime pas (ne tourne pas) tant que vous ne rafraîchissez pas la page.

Je soupçonne que cela est dû au fait que le JavaScript ne se relance pas lors de la navigation entre les pages sur Discourse ; au lieu de cela, le contenu est simplement généré sur les différentes pages. Est-ce ainsi que fonctionne Discourse et, si oui, existe-t-il une solution de contournement ?

1 « J'aime »

Vous devez placer ce code dans un composant de thème :

<script type="text/discourse-plugin" version="0.8">
    api.onPageChange(() =>{
        callYourFunctionHere();
    });
</script>
1 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.