【ブログカスタマイズ】ページのURLに応じて、同じ場所のテキストを変更 #JavaScript


やりたいこと

サイドバーの目次タイトルを、表示するページによって変更したい

できるかな?

URLの違い

https://rubirubi.hateblo.jp/entry/

https://rubirubi.hateblo.jp/archive/

とりあえずは通常記事とアーカイブ(カテゴリー含む)で。

JavaScriptで特定のURLを識別

指定したURLのパスに基づいて、特定のテキストを表示するためには、JavaScriptを使用する必要があります。以下は、JavaScriptを使ってURLに基づいてテキストを切り替える一例です。

 <!-- サイドバーなどのコンテンツ -->
  <div class="side-menu-sticky" id="stoc-body">
        <div>[ contents ]</div>
  </div>
  
  <!-- JavaScriptの読み込み -->
  <script>
    var currentURL = window.location.href;
    var contentsLink = document.getElementById("stoc-body");  <!-- ←ここで同じidを指定 -->

    if (currentURL.includes("/archive/")) {
      contentsLink.innerHTML = '<a href="#top">[ このページの記事一覧 ]</a>';
    } else if (currentURL.includes("/entry/")) {
      contentsLink.innerHTML = '<a href="#top">[ contents ]</a>';
    }
  </script>



この例では、URLを取得し、そのURLに基づいて特定の条件をチェックしています。もしURLが `/archive/` を含む場合は `[ このページの記事一覧 ]`、`/entry/` を含む場合は `[ contents ]` を表示するようにしています。

ただし、この方法はJavaScriptを使用するため、ページが読み込まれた後にテキストが変更され、初期表示時に一瞬元のテキストが表示される可能性があります。また、JavaScriptを有効にする必要もあります。

サーバー側言語(例: PHPやPython)を使って動的にテキストを生成する方法もあると思いますが、上記の方法はJavaScriptだけで実現する例です。