ページがレンダリングされた後にコードを実行する方法

span.category-topics--posts-count の括弧を削除したいです(GitHub - discourse/discourse-right-sidebar-blocks によってレンダリングされます)。api.onPageChange() を試していますが、他のテーマコンポーネントがページにそれらを配置する前に実行されているため、countSpans が取得できていないようです。

どうすればよいでしょうか? :crying_cat:


  api.onPageChange(() => {
    console.log("page changed");

    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

それがうまくいくとは思いません。

これらのことはCSSやEmberのランループ内で行う必要があります。

何があなたを妨げて、そのコンポーネントをフォークして、別の名前でカスタマイズし、別のテーマコンポーネントをロードし、その後RSBで名前を指定して追加することですか?

「いいね!」 2

ほとんど怠惰です。そして、始めたときは単なる静的な小さなCSSになるはずだったので、フォークを維持する必要はないだろうと思っていましたが、今となってはフォークしないのは明らかに愚かです。

ありがとうございます

「いいね!」 4

このトピックは、最後の返信から30日後に自動的にクローズされました。新しい返信は許可されていません。