Javascript läuft zwischen verschiedenen Seiten nicht erneut

Hallo zusammen,

ich habe eine Theme-Komponente entwickelt, die mit der Bibliothek swiper.js rotiert. Im <head>-Tag meiner Komponente lade ich die swiper.js- und CSS-Dateien über ein CDN und deklariere das Element auf der Seite innerhalb einer window.ready-Funktion als Swiper.

Das Problem, auf das ich stoße, ist, dass die Rotation funktioniert, wenn man direkt zu dieser Seite navigiert. Wenn man jedoch auf einen beliebigen Link auf der Discourse-Seite klickt, der zu dieser Seite führt, wird die erste Folie zwar geladen, erscheint aber als statisches Bild. Diese Komponente animiert (rotiert) nicht, bis man die Seite neu lädt.

Ich vermute, dass dies daran liegt, dass das JavaScript beim Navigieren zwischen den Seiten in Discourse nicht erneut ausgeführt wird, sondern lediglich der Inhalt auf den verschiedenen Seiten generiert wird. Ist das so, wie Discourse funktioniert, und wenn ja, gibt es eine Workaround-Lösung dafür?

1 „Gefällt mir“

Sie müssen diesen Code in eine Theme-Komponente einfügen:

<script type="text/discourse-plugin" version="0.8">
    api.onPageChange(() =>{
        callYourFunctionHere();
    });
</script>
1 „Gefällt mir“

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