Javascript

JavascriptでURLパラメータを取得する方法!

Javascript

パラメータを設定しGA4で値を取得しようかなと思いJavascriptでパラメータを取得する方法を調べました。忘れないように備忘録を残します。

URLパラメータとは

URLパラメータ(別名:GETパラメータ、 リクエストパラメータ、クエリ文字列)とは、urlの主に末尾にある「?」以降の値のことです。この値をサーバーなどに情報を送ることが可能です。

例:https://programmer-life.work/?parameter1=1&parameter2=2

パラメータが複数ある場合は&で追加していきます。

実際にパラメータがどのように影響しているのか確認したい場合は有名どころのグーグル検索確認してみるとわかりやすいかもしれません。

例:https://www.google.com/search?q=あいうえお&num=20

上記のURLをChromeのURLに入力した場合グーグル検索で「あいうえお」を検索し20件の結果を画面に表示してくれます。

URLパラメータを取得する

書き方はいろいろありそうですがわかりやすいかなと思う書き方で書いていきます。

JavascriptでのURLパラメータの取得はまずwindow.locationオブジェクトとURLSearchParamsインターフェースを利用してURLパラメータを取得します。

window.locationでできること

window.locationの動きを軽くみます。

// https://programmer-life.work?id1=1&id2=2 の場合

let url = window.location;
console.log(url) //全ての情報を確認
console.log(url.href) // https://programmer-life.work?id1=1&id2=2
console.log(url.search); // ?id1=1&id2=2

window.locationで値を取得すると以下のようなデータが取得できます。

Location {ancestorOrigins: DOMStringList, href: ‘https://programmer-life.work/?id1=1&id2=2’, origin: ‘https://programmer-life.work’, protocol: ‘https:’, host: ‘programmer-life.work’, …以下略}

console.log(url.href)ではhref情報を確認(現在表示しているurl)が確認でき、console.log(url.search);ではパラメータの値を取得しています。

これだけでもパラメータを取得できているとも言えますが、例えば、id1の値だけ取得したいなどの時に不便です。そこでURLSearchParamsも使っていきます。

window.locationとURLSearchParamsを使ってパラメータを取得

URLSearchParamsを使うことで色々な関数が使えるようになります。

以下簡単な例です。

// https://programmer-life.work?id1=1&id2=2&id2=value の場合

let url = window.location;
//URLSearchParamsへパラメータ(?id1=1&id2=2&id2=value)を渡す
const searchParams = new URLSearchParams(url.search);

// パラメータを全て表示
for (const p of searchParams) {
  console.log(p); // ['id1', '1'] ['id2', '2'] ['id2', 'value']
}
// id1の値を取得
console.log(searchParams.get("id1")) // 1

// id2の値を全て取得
console.log(searchParams.getAll("id2")); // ['2', 'value']

// id3があるか
console.log(searchParams.has("id3")); // false

パラメータ一つ一つを取得したり、まてめて取得したり、キーとなる値が存在しているか確認したりなど簡単に行えるようになりました。

他にも関数はあるので気になる方は以下を確認してみるといいかと思います。

https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams

おわり

めちゃくちゃ便利ですね。知らなかったので正規表現でURLパラメータの値を引っ張ってこようかと思っていました。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です