JavaScript URL - izudon/izudon.github.io GitHub Wiki
概要
- URL オブジェクトは、URL 文字列を引数とするコンストラクタによって、
作ることが可能である(以下のように)。const url = new URL( "https://user:[email protected]/ir/?q=abc&max=25#2023-1q" );
1.8つの構成要素
URL はよくみれば8つの部分からなり、それぞれ以下のプロパティで拾ってこられる。
.protocolプロトコルhttps.hostnameホスト名www.example.com.portポート番号443(省略されている場合プロトコルからデフォルトで推定).pathnameパス/ir/.searchクエリ文字列?q=abc&max=25.hashハッシュ#2023-1q.usernameユーザ名user.passwordパスワードpass
このうちいくつかをつなげて一気に拾ってこられるプロパティもある。
hostホスト名+ポートwww.example.com:8080originプロトコル+ホスト名+ポートhttps://www.example.com:8443- ポートはいずれもそれがプロトコルのデフォルトでない場合に付加される。
2.文字列表現
.hrefこのプロパティは上記全情報を含んだURLを示す文字列表現を示す。
"https://user:[email protected]/ir/?q=abc&max=25#2023-1q"
3.代入
- 上記の各プロパティ(
originなど読取専用のものを除く)に、
値(文字列)を代入することで、URL の一部を変えてしまうことができる。const a = new URL( "http://www.example.com/ir/" ); a.pathname = "/history/2020s.html"; a.hash = "2023"; a.href //=> "http://www.example.com/history/2020s.html/#2023" - また、
window.location.hrefに URL 文字列を代入することで、
画面遷移 を起こすことができる。window.location.href = "http://www.google.com/"; //=> Google に飛ぶ
4.クエリ文字列
searchParamsURLSearchParamsオブジェクトが返る。
クエリ文字列付き URL の生成
- オブジェクトを引数として
URLSearchParamsをnewする。 - 出来上がったオブジェクトを
.toString()して URL オブジェクトのsearchに代入。 .hrefプロパティを参照する。
const params = {
q: "abc123",
lang: "ja"
}
const url = new URL( "https://www.example.com/" );
url.search = new URLSearchParams(params).toString();
url.href //=> "https://www.example.com/?q=abc123&lang=ja"