Cómo ejecutar código después de que la página se haya renderizado

Quiero eliminar los paréntesis de span.category-topics--posts-count (renderizado por GitHub - discourse/discourse-right-sidebar-blocks). Estoy intentando esta llamada api.onPageChange(), pero no está obteniendo ningún countSpans, creo que porque se ejecuta antes de que el otro componente temático los haya puesto en la página.

¿Qué puedo hacer? :crying_cat:


  api.onPageChange(() => {
    console.log("página cambiada");

    const countSpans = document.querySelectorAll(
      "span.category-topics--posts-count"
    );
    console.log("spans", 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 Me gusta

No creo que eso vaya a funcionar.

debes realizar estas cosas mediante CSS o dentro del ciclo de ejecución de Ember.

¿Qué te impide bifurcar ese componente y personalizarlo a tu gusto con un nombre diferente, cargar un Componente de Tema separado y luego agregarlo por nombre en RSB?

2 Me gusta

Pereza, en su mayor parte. Y cuando lo empecé, solo iba a ser un pequeño CSS que probablemente sería estático y no necesitarían mantener la bifurcación, pero sí, ahora obviamente es una tontería no bifurcarlo.

Gracias.

4 Me gusta

Este tema se cerró automáticamente 30 días después de la última respuesta. Ya no se permiten nuevas respuestas.