Come eseguire il codice dopo che la pagina è stata renderizzata

Voglio rimuovere le parentesi da span.category-topics--posts-count (renderizzato da GitHub - discourse/discourse-right-sidebar-blocks). Sto provando questa chiamata api.onPageChange(), ma non sta ottenendo alcun countSpans, penso perché viene eseguita prima che l’altro componente del tema li abbia inseriti nella pagina.

Cosa posso fare? :crying_cat:


  api.onPageChange(() => {
    console.log("pagina cambiata");

    const countSpans = document.querySelectorAll(
      "span.category-topics--posts-count"
    );
    console.log("span", countSpans);
    countSpans.forEach((span) => {
      const currentText = span.textContent.trim();
      const newText = currentText.replace(/[()]/g, "");
      span.textContent = newText;
      const number = parseInt(newText);
      if (isNaN(number)) {
        span.style.padding = "0px";
      } else if (number < 10) {
        span.style.padding = "0px";
      } else {
        span.style.padding = "0px 3px";
      }
    });
  });
});
2 Mi Piace

Non credo che ciò funzionerà.

Devi eseguire queste operazioni tramite CSS o all’interno del ciclo di esecuzione di Ember.

Cosa ti impedisce di forkare quel componente e personalizzarlo secondo i tuoi gusti con un nome diverso, caricando un componente Tema separato e poi aggiungendolo per nome in RSB?

2 Mi Piace

Per lo più pigrizia. E quando ho iniziato doveva essere solo un piccolo css che sarebbe probabilmente stato statico e non avrebbero avuto bisogno di mantenere il fork, ma sì, ora è ovviamente sciocco non fare il fork.

Grazie

4 Mi Piace

Questo argomento è stato chiuso automaticamente 30 giorni dopo l’ultima risposta. Non sono più consentite nuove risposte.