JavaScript

最終更新日:
公開日:

レシピ

URL

URLにGETパラメータを追加する

新しいパラメータ名と値のセットをGETパラメータとしてURLに追加する方法を解説します。

この記事のポイント

  • GETパラメータを追加するときはappendメソッドを使う

URLにGETパラメータを追加する

URLにGETパラメータを追加するときはURLSearchParamsオブジェクトappendメソッドを使って追加することができます。

以下の例は、URLに新しいパラメータとして「mode=view」を追加します。

index.js

// URLを取得
var url = new URL(window.location.href);

if( !url.searchParams.get('mode') ) {

	url.searchParams.append('mode','view');
	location.href = url;

} else {
	console.log(url.searchParams.get('mode')); // view
}

if文の条件式ではすでにGETパラメータのmodeがあるかを確認します。
このパラメータを持っていない場合はappendメソッドを実行して追加した後に、新しいURLをlocation.hrefに入れてページをリダイレクト(再読込)します。

ページを再読込した後にもう1度if文でGETパラメータを確認し、パラメータがあることを確認できたらelse文へ移動してコンソールに値を出力します。

複数のGETパラメータを追加する

GETパラメータは必要に応じていくつでも追加することができます。
また、同じパラメータ名を持つGETパラメータも追加可能です。

以下の例は、URLがもともと持っている「mode=view」に加えて、3つのGETパラメータを追加します。

index.js

// URLを取得
var url = new URL(window.location.href);

url.searchParams.append('username','taro');
url.searchParams.append('mode','data1');
url.searchParams.append('mode','data2');

console.log(url.searchParams.get('username')); // taro
console.log(url.searchParams.getAll('mode')); // (3) ["view", "data1", "data2"]

appendメソッドを3回実行した後に、それぞれのパラメータ名の値をコンソールに出力します。
同じパラメータ名を持つものが複数ある場合は、getAllメソッドを使うと全てのデータを配列形式で取得することができます。