Przejdź do głównej zawartości
Help Center
Log in Sign up free

Widget brakuje na dynamicznie doładowanej treści

Widget inicjalizuje się raz, przy ładowaniu strony. Wszystko, co zostanie dodane do strony później przez JavaScript, nigdy nie jest przetwarzane, więc brakuje na tym ocen.

Trafisz na to przy:

  • infinite scroll na stronach kategorii i listingów,
  • filtrach AJAX, które podmieniają siatkę produktów bez przeładowania strony,
  • aplikacjach jednostronicowych (SPA) (React, Vue, Next.js w routingu po stronie klienta), gdzie nawigacja nie przeładowuje dokumentu,
  • quick view i oknach modalnych budowanych w locie.

Rozwiązanie: reinicjalizuj po pojawieniu się nowej treści

Wywołaj funkcję inicjalizującą ponownie, gdy nowe elementy już istnieją w DOM. Użyj tego samego ID użytkownika i tych samych ustawień co w oryginalnym fragmencie kodu, a jako cel wskaż nowo dodany kontener.

<script>
// Wywołaj to PO doładowaniu nowych kart, nie przy starcie strony.
function refreshJustReview() {
initStars("YOUR_USER_ID", { /* te same ustawienia co w Twoim snippecie */ });
}
</script>

Miejsce, w którym to wywołujesz, zależy od Twojej platformy:

Infinite scroll albo filtry AJAX. Większość skryptów wyzwala event albo przyjmuje callback, gdy nowa partia zostaje wstawiona. Wywołaj tam refreshJustReview().

Uniwersalny fallback: obserwuj kontener. Gdy nie ma eventu, do którego można się podpiąć, obserwuj siatkę i reinicjalizuj, gdy pojawią się nowe węzły.

<script>
var grid = document.querySelector('#product-grid'); // Twój kontener
if (grid) {
new MutationObserver(function () {
refreshJustReview();
}).observe(grid, { childList: true });
}
</script>

Aplikacje jednostronicowe. Wywołaj to po każdej zmianie trasy, w hooku, który Twój framework daje na “nawigacja zakończona”.

Widget działał, a potem całkowicie przestał

To już inny problem. Sprawdź, po kolei:

  1. Twoja lista dozwolonych domen w Ustawieniach nadal pasuje do Twojego adresu. Migracja z http na https albo dodanie www ją zmienia.
  2. Element kontenera nadal jest na stronie. Aktualizacje motywu i edycje w page builderze usuwają go zaskakująco często.
  3. Wtyczka do cache’owania albo optymalizacji zaczęła opóźniać, łączyć albo minifikować skrypt. Wyklucz justreview.js z optymalizacji JavaScript.
  4. Fragment kodu został zregenerowany w panelu, ale nie podmieniony na Twojej stronie, więc nadal niesie stare ustawienia.