Location
Document.location は読み取り専用のプロパティで、この文書の URL に関する情報を持った Location オブジェクトを返します。これはその URL を変更したり他の URL を読み込んだりするためのメソッドも提供しています。
Document.location は読み取り専用の Location オブジェクトですが、文字列を代入することができます。つまり、 document.location が文字列であるかのように扱うことができます。 document.location = 'http://www.example.com' は document.location.href = 'http://www.example.com' の別名です。他の文字列を代入すると、ブラウザーは代入されたウェブサイトを読み込みます。
URL を文字列として受け取るだけであれば、読み取り専用の document.URL プロパティも利用することができます。
現在の文書が閲覧コンテキスト内にない場合、返値は null となります。
対応ブラウザ
| 機能 | デスクトップ | モバイル | ||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | Chrome Android | Safari iOS | |
| 1 | 12 | 1 | 4 | 18 | 3.2 | |
| Location インターフェイスは、関連付けられたオブジェクトの場所 (URL) を表します。変更が行われると、関連するオブジェクトに反映されます。 Document および Window インターフェイスにはこのような関連付けられた Location があり、それぞれ Document.location および Window.location でアクセスできます。 | 1 | 12 | 1 | 1 | 18 | 1 |
| ancestorOrigins は Location インターフェイスの読み取り専用プロパティで、静的な DOMStringList であり、指定された Location オブジェクトに関連付けられたこの文書の閲覧コンテキストのすべての祖先のオリジンを、逆順で保持します。 | 20 | 79 | 148 | 6 | 25 | 6 |
| Location.assign() メソッドは、指定された URL の文書をウィンドウに読み込んで表示します。移動した後、ユーザーは「戻る」ボタンを押すことによって Location.assign() を呼び出したページに戻ることができます。 | 1 | 12 | 1 | 3 | 18 | 1 |
| hash は Location インターフェイスのプロパティで、'#' に URL のフラグメント識別子が続く文字列です。これはページ上の ID で、 URL がターゲットにしようとしているものです。 | 1 | 12 | 1 | 1 | 18 | 1 |
| host は Location インターフェイスのプロパティで、ホスト、すなわちホスト名と、 URL のポート番号が空でなければ、 ':' およびそのポート番号の入った文字列です。 | 1 | 12 | 1 | 1 | 18 | 1 |
| hostname は Location インターフェイスのプロパティで、URL のドメインが入った文字列です。 | 1 | 12 | 1 | 1 | 18 | 1 |
| href は Location インターフェイスのプロパティで、stringifierです。文字列で URL 全体を表し、href を更新することができます。 | 1 | 12 | 1 | 1 | 18 | 1 |
| origin は Location インターフェイスの読み取り専用プロパティで、指定された URL のオリジンの Unicode シリアライズが入った文字列です。 | 8 | 12 | 21 | 5.1 | 18 | 5 |
| pathname は Location インターフェイスのプロパティで、その位置を表す URL のパスが入った文字列です。パスがない場合は空文字列になります。そうでない場合、pathname には最初の '/' に続いて URL のパス部分が入り、クエリー文字列やフラグメントは含みません。 | 1 | 12 | 1 | 1 | 18 | 1 |
| port は Location インターフェイスのプロパティで、URL のポート番号が入った文字列です。URL に明示的にポート番号が指定されていない場合は、'' に設定されます。 | 1 | 12 | 1 | 1 | 18 | 1 |
| protocol は Location インターフェイスのプロパティで、 URL のプロトコルスキームを、最後の ':' を含めて表す文字列です。 | 1 | 12 | 1 | 1 | 18 | 1 |
| location.reload() メソッドは、再読み込みボタンのように現在の URL を再読み込みします。 | 1 | 12 | 1 | 1 | 18 | 1 |
| replace() は Location インターフェイスのメソッドで、現在のリソースを指定された URL のもので置き換えます。 Location.assign メソッドとの違いは、 replace() を使用すると現在のページがセッションの History に保存されないことです。すなわち、ユーザーが[戻る]ボタンを使用して戻ることができなくなります。 | 1 | 12 | 1 | 1 | 18 | 1 |
| search は Location インターフェイスのプロパティで、クエリー文字列とも呼ばれる検索文字列です。つまり、 '?' の後の URL 引数を含む文字列を指定します。 | 1 | 12 | 1 | 1 | 18 | 1 |
| toString() は Location インターフェイスのstringifierメソッドであり、URL 全体を文字列で返します。これは Location.href の読み取り専用版です。 | 52 | 12 | 22 | 1 | 52 | 1 |
| Window.location は読み取り専用プロパティで、現在の文書の現在位置についての情報を持つ Location オブジェクトを返します。 | 1 | 12 | 1 | 1 | 18 | 1 |
- このブラウザでは部分的にしか実装されていません
- このバージョンで機能が削除されました (4)
- すべての `Document` オブジェクトではなく、`HTMLDocument` に対してのみサポートされている。
- このブラウザでは部分的にしか実装されていません
- このバージョンで機能が削除されました (3.2)
- すべての `Document` オブジェクトではなく、`HTMLDocument` に対してのみサポートされている。
- Firefox 49 以前のバージョンでは、blob スキーマを使用する URL の検索結果が誤って null を返していました。
- Firefox 53 以前では、`pathname` プロパティは URL の誤った部分を返していました。たとえば、URL が `https://z.com/x?a=true&b=false` の場合、`pathname` は "/x" ではなく "/x?a=true&b=false" を返していました。
- Edge 79 以前のバージョンでは、信頼済みサイトに追加されたページにクロスオリジン iframe が含まれている場合、その iframe 内から `reload()` を呼び出すと、信頼済みページが再読み込みされます(つまり、iframe ではなく親ページが再読み込みされます)。
- Firefox 53 以前では、`search` プロパティは URL の誤った部分を返していました。たとえば、URL が `https://z.com/x?a=true&b=false` の場合、`search` は "?a=true&b=false" ではなく " " を返していました。
- Firefox 57 以前のバージョンでは、URL API 経由でアクセスした場合、URL 内の単一引用符がエスケープされていました。バグ 1386683 を参照してください。
基本構文
console.log(document.location);
// Prints a Location object to the console 実務での使いどころ
-
Location の活用
Document.location は読み取り専用のプロパティで、この文書の URL に関する情報を持った Location オブジェクトを返します。
注意点
- 古いブラウザでは対応していない場合がある。
実装メモ
- 一部の API はセキュアコンテキスト (HTTPS) やユーザー操作起点を必要とする。利用前に要件を確認すること。