this post was submitted on 27 Dec 2023
3 points (100.0% liked)

ŝercaĵo

77 readers
1 users here now

鴉河が個人的に何か書くところです。
大体はギャグか戯言として受け止めてくださいな。

 このページで利用している株式会社スクウェア・エニックスを代表とする共同著作者が権利を所有する画像の転載・配布は禁止いたします。
 © ARMOR PROJECT/BIRD STUDIO/SQUARE ENIX All Rights Reserved.

founded 3 years ago
MODERATORS
 

Lemmyで0.18.0以降アンカーリンクが使えなくなり、デフォルトでも使える脚注ももちろん使えなくなりました。

で、Issueとかも出してるんですが対処されないので(自分ではちょっと無理・・・)無理やりなんとかします。

やることは簡単、Lemmy UIのカスタムヘッダーを使って、popstateを無理やり解除してからそのリンク先にスクロールするという手法です。

Lemmyの特性上ページの遷移時にloadイベントが発生しないのでリンクにリスナーをっていう感じではなくclickにしてます。

      LEMMY_UI_CUSTOM_HTML_HEADER: >
            <script>
              window.addEventListener('click', e => {
                const link = e.target.getAttribute('href');
                if (/^#/.test(link)) {
                  e.preventDefault();
                  escapeLink = "#" + CSS.escape(link.slice(1))
                  const toTarget = document.querySelector(escapeLink);
                  if (toTarget) {
                    if (toTarget.scrollIntoView) {
                      toTarget.scrollIntoView({ behavior: "smooth", block: "start", inline: "nearest" });
                    } else {
                      let rect = toTarget.getBoundingClientRect();
                      window.scrollTo(rect.x, rect.y)
                    }
                  }
                }
              });
            </script>

以下のサイトでまったく同じ問題に直面している人のやつを参考にしました。(Lemmyではないけど)
https://krasimirtsonev.com/blog/article/anchor-links-and-popstate>

これの成果はここでためせます。
https://lm.korako.me/post/8420

no comments (yet)
sorted by: hot top controversial new old
there doesn't seem to be anything here