Javascript non viene rieseguito tra pagine diverse

Ciao a tutti,

Ho sviluppato un componente tema che ruota utilizzando la libreria swiper.js. Nel tag head del mio componente, carico i file JS/CSS di Swiper da un CDN e dichiaro anche l’elemento sulla pagina come swiper all’interno di una funzione window.ready.

Il problema che incontro è che la rotazione funziona correttamente quando si naviga direttamente alla pagina, ma se si clicca su un qualsiasi link del sito Discourse che porta a quella pagina, la prima slide viene caricata come immagine statica e questo componente non si anima (non ruota) finché non si aggiorna la pagina.

Sospetto che ciò sia dovuto al fatto che il JavaScript non viene rieseguito quando si naviga tra le pagine su Discourse; invece, il contenuto viene semplicemente generato su pagine diverse. È così che funziona Discourse e, in tal caso, esiste una soluzione alternativa a questo problema?

Devi inserire questo codice in un componente del tema:

<script type="text/discourse-plugin" version="0.8">
    api.onPageChange(() =>{
        callYourFunctionHere();
    });
</script>