【JavaScript】URLに応じてページの表示内容を切り替える方法

【JavaScript】URLに応じてページの表示内容を切り替える方法 JavaScript

Webページの表示を訪問者のアクセスURLに応じて切り替えたい場面は多くあります。例えば、特定のキャンペーンページでのみ特別なコンテンツを表示したり、特定のクエリパラメータが含まれている場合だけ案内メッセージを表示したい場合などです。この記事では、JavaScriptを使ってURLを判別し、動的に表示内容を変更する方法を紹介します。

現在のURLを取得する方法

JavaScriptで現在のページのURLを取得するには、window.location オブジェクトを使用します。ページのフルURLを取得するには window.location.href を使います。

const currentUrl = window.location.href;
console.log(currentUrl);

パス名に応じて表示を切り替える

たとえば、/campaign/ というパスが含まれるURLで特定の要素を表示したい場合は、次のようにします。

if (window.location.pathname.includes('/campaign/')) {
  document.getElementById('campaign-banner').style.display = 'block';
}

事前にHTML内で対象の要素に display: none; を指定しておけば、該当URLのときだけ表示されます。

クエリパラメータによって表示内容を変える

例えば、URLが https://example.com/?promo=summer のようにクエリパラメータを持つ場合、次のようにして値を取得できます。

const params = new URLSearchParams(window.location.search);
const promo = params.get('promo');

if (promo === 'summer') {
  document.getElementById('summer-banner').style.display = 'block';
}

これにより、promo=summer のパラメータがついているURLでのみ、対象のバナーなどを表示できます。

ハッシュ(#)によって表示を切り替える

ハッシュフラグメント(#about など)によって表示を制御することもできます。

if (window.location.hash === '#about') {
  document.getElementById('about-section').scrollIntoView();
}

ハッシュはページ内リンクや動的切り替えなど、シングルページアプリケーションでもよく使われます。

実用例 複数のセクションを切り替える

次のコードは、クエリパラメータの値に応じて表示するセクションを切り替える例です。

<div id="section1" style="display: none;">セクション1の内容</div>
<div id="section2" style="display: none;">セクション2の内容</div>

<script>
  const section = new URLSearchParams(location.search).get('section');

  if (section === '1') {
    document.getElementById('section1').style.display = 'block';
  } else if (section === '2') {
    document.getElementById('section2').style.display = 'block';
  }
</script>

URLに ?section=1 または ?section=2 を指定することで、表示を切り替えられます。

まとめ

JavaScriptを活用すれば、URLのパス名、クエリパラメータ、ハッシュに応じてページの表示内容を柔軟にコントロールできます。キャンペーンやユーザー別のコンテンツ出し分け、セクションの動的切り替えなどに応用できるため、ぜひ活用してみてください。設計時にはユーザーの意図しない表示切り替えを避けるために、URLの妥当性チェックやエラー時の対応も忘れずに実装しましょう。