Skip to content

Commit

Permalink
Merge branch 'main' into amplitude
Browse files Browse the repository at this point in the history
  • Loading branch information
Gahotx authored Sep 30, 2024
2 parents 5f34f22 + aacc5a1 commit c40f3a6
Show file tree
Hide file tree
Showing 86 changed files with 3,375 additions and 856 deletions.
2 changes: 1 addition & 1 deletion files/ja/web/api/customevent/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ l10n:

## インスタンスプロパティ

_親である {{domxref("Event")}} インターフェイスから継承したプロパティがありますます_
_親である {{domxref("Event")}} インターフェイスから継承したプロパティがあります_

- {{domxref("CustomEvent.detail")}} {{ReadOnlyInline}}
- : イベントが初期化されたときに渡された何らかのデータを返します。
Expand Down
24 changes: 11 additions & 13 deletions files/ja/web/api/url/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,20 @@
title: URL
slug: Web/API/URL
l10n:
sourceCommit: acfe8c9f1f4145f77653a2bc64a9744b001358dc
sourceCommit: 32305cc3cf274fbfdcc73a296bbd400a26f38296
---

{{APIRef("URL API")}}
{{APIRef("URL API")}} {{AvailableInWorkers}}

**`URL`** インターフェイスは、{{glossary("URL", "URL")}} の解釈、構築、正規化、およびエンコードに使用します。 URL のコンポーネントを簡単に読み取って変更できるプロパティを提供することで機能します。

通常、新しい `URL` オブジェクトを作成するにはコンストラクターを呼び出すときに URL を文字列として指定するか、相対 URL とベース URL を指定します。その後、解釈された URL のコンポーネントを簡単に読み取ったり、URL を変更したりすることができます。

ブラウザーがまだ {{domxref("URL.URL", "URL()")}} コンストラクターに対応していない場合は、{{domxref("Window")}} インターフェイスの {{domxref("URL")}} プロパティを使用して URL オブジェクトにアクセスできます。対象とするブラウザーのいずれかに、この接頭辞を付ける必要があるかどうかを確認してください。

{{AvailableInWorkers}}

## コンストラクター

- {{domxref("URL.URL", "URL()")}}
- : 絶対 URL 文字列、または相対 URL 文字列とベース URL 文字列を使用して指定された URL を参照する `URL` オブジェクトを作成して返します。
- : `URL` オブジェクトを、URL 文字列とオプションのベース URL 文字列から作成し、それを返します。
渡された引数が有効な URL を定義していない場合、例外が発生します。

## プロパティ

Expand Down Expand Up @@ -49,12 +46,14 @@ l10n:

## 静的メソッド

- [`canParse()`](/ja/docs/Web/API/URL/canParse_static)
- {{domxref("URL.canParse_static", "canParse()")}}
- : URL 文字列とオプションのベース URL 文字列から定義された URL が解釈可能で有効かどうかを示す論理値を返します。
- {{domxref("URL/createObjectURL_static", "createObjectURL()")}}
- {{domxref("URL.createObjectURL_static", "createObjectURL()")}}
- : 一意の blob URL の入った文字列を返します。 これは、スキームとして `blob:` の入った URL で、その後にブラウザー内のオブジェクトを一意に識別する不透明な文字列が続きます。
- {{domxref("URL/revokeObjectURL_static", "revokeObjectURL()")}}
- : {{domxref("URL.createObjectURL_static")}} を使用して以前に生成したオブジェクト URL を取り消します。
- {{domxref("URL.parse_static", "parse()")}}
- : `URL` オブジェクトを、URL 文字列とオプションのベース URL 文字列から作成して返します。渡された引数が無効な `URL` を定義している場合は、`null` を返します。
- {{domxref("URL.revokeObjectURL_static", "revokeObjectURL()")}}
- : {{domxref("URL.createObjectURL_static", "URL.createObjectURL()")}} を使用して以前に生成したオブジェクト URL を取り消します。

## メソッド

Expand All @@ -74,7 +73,7 @@ console.log(url.pathname); // "/cats"
```

コンストラクターは URL を有効な URL に解釈できない場合に例外を発生させます。
上記のコードを [`try...catch`](/ja/docs/Web/JavaScript/Reference/Statements/try...catch) ブロックの中で呼び出すか、[`canParse()`](/ja/docs/Web/API/URL/canParse_static) 静的メソッドを使って先に URL が有効かどうかをチェックしてください。
上記のコードを [`try...catch`](/ja/docs/Web/JavaScript/Reference/Statements/try...catch) ブロックの中で呼び出すか、{{domxref("URL.canParse_static", "canParse()")}} 静的メソッドを使って先に URL が有効かどうかをチェックしてください。

```js
if (URL.canParse("../cats", "http://www.example.com/dogs")) {
Expand Down Expand Up @@ -131,5 +130,4 @@ const response = await fetch(
- [`URL` のポリフィル (`core-js`)](https://github.com/zloirock/core-js#url-and-urlsearchparams)
- [URL API](/ja/docs/Web/API/URL_API)
- [URL とは何か](/ja/docs/Learn/Common_questions/Web_mechanics/What_is_a_URL)
- `URL` オブジェクトを取得するプロパティ: {{domxref("URL")}}
- {{domxref("URLSearchParams")}}
40 changes: 25 additions & 15 deletions files/ja/web/api/url/url/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,15 @@ title: "URL: URL() コンストラクター"
short-title: URL()
slug: Web/API/URL/URL
l10n:
sourceCommit: 0c8a320b035cf625c1df67713a94ead2e7f3aec6
sourceCommit: 5a7fae1cc8df27d50c9365511a714f3c2fa4bfc1
---

{{APIRef("URL API")}}
{{APIRef("URL API")}} {{AvailableInWorkers}}

**`URL()`** コンストラクターは、引数によって定義された URL を表す、新しく生成された {{domxref("URL")}} オブジェクトを返します。

与えられたベース URL または結果の URL が有効な URL でない場合、JavaScript の {{jsxref("TypeError")}} 例外が発生します。

{{AvailableInWorkers}}

## 構文

```js-nolint
Expand All @@ -24,26 +22,35 @@ new URL(url, base)
### 引数

- `url`
- : 絶対または相対 URL を表す文字列または{{Glossary("stringifier", "文字列化")}}のあるその他のオブジェクト、例えば {{htmlelement("a")}} や {{htmlelement("area")}} 要素です
`url` が相対 URL である場合`base` は必須であり、ベース URL として使用されます
`url` が絶対 URL である場合、指定された `base` は無視されます
- : 文字列または{{Glossary("stringifier", "文字列化")}}のあるその他のオブジェクトで、絶対またはベース URL に対する相対参照を表します
`url` が相対参照である場合`base` は必須であり、最終的な URL を解決するために使用されます
`url` が絶対 URL である場合、指定された `base` は結果の URL を作成するためには使用されません
- `base` {{optional_inline}}
- : `url` が相対 URL の場合に使用するベース URL を表す文字列です。

- : 文字列で、`url` が相対参照の場合に使用するベース URL を表します。
指定されなかった場合、既定値は `undefined` です。

`base` を指定した場合、解決した URL は単に `url``base` を結合したものではありません。
親ディレクトリーおよびカレントディレクトリーへの相対参照は、`base` URL の最後のスラッシュまでのパス部分をカレントディレクトリーとした相対で解決されます。ただし、最後のスラッシュ以降は含まれません。
ルートへの相対参照は、ベースを原点とした相対で解決されます。
詳細については、[URL への相対参照の解決](/ja/docs/Web/API/URL_API/Resolving_relative_references)を参照してください。

> [!NOTE]
> 引数 `url``base` はそれぞれ、文字列を受け入れる他の Web API と同様に、渡された値から文字列化されます
> 引数 `url``base` はそれぞれ、渡された値を何でも、{{domxref("HTMLAnchorElement")}} や {{domxref("HTMLAreaElement")}} であっても文字列化します。これは、文字列を受け入れる他の Web API と同様です
> 具体的な例としては、既存の {{domxref("URL")}} オブジェクトをどちらの引数にも使用することができ、そのオブジェクトの {{domxref("URL.href", "href")}} プロパティに文字列化されます。
### 例外

| 例外 | 説明 |
| ----------------------- | ----------------------------------------------------------------------------------------------- |
| {{jsxref("TypeError")}} | `url`(絶対 URL の場合)または `base` + `url`(相対 URL の場合)が、有効な URL ではありません。 |
- {{jsxref("TypeError")}}
- : `url`(絶対 URL の場合)または `base` + `url`(相対 URL の場合)が、有効な URL ではない場合。

##

```js
コンストラクターを使用する例をいくつか示します。

> **メモ:** [相対参照の URL への解決](/ja/docs/Web/API/URL_API/Resolving_relative_references)では、さまざまな `url``base` 値が最終的な絶対 URL に解決される方法を説明するさらなる例が提供されています。
```js-nolint
// ベース URL:
let baseUrl = "https://developer.mozilla.org";
Expand All @@ -67,9 +74,11 @@ new URL("/ja/docs", A);
new URL("/ja/docs", "https://developer.mozilla.org/fr-FR/toto");
// => 'https://developer.mozilla.org/ja/docs'
```

// 無効な URL:
こちらは無効な URL の例です。

```js
new URL("/ja/docs", "");
// Raises a TypeError exception as '' is not a valid URL

Expand Down Expand Up @@ -104,5 +113,6 @@ new URL("//foo.com", "https://example.com");

## 関連項目

- {{domxref("URL.parse_static", "URL.parse()")}}: 例外を発生しないこのコンストラクターの代用
- [`URL` のポリフィル (`core-js`)](https://github.com/zloirock/core-js#url-and-urlsearchparams)
- 所属しているインターフェース: {{domxref("URL")}}
- 所属しているインターフェイス: {{domxref("URL")}}
164 changes: 164 additions & 0 deletions files/ja/web/api/url_api/resolving_relative_references/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
---
title: 相対参照の URL への解決
slug: Web/API/URL_API/Resolving_relative_references
l10n:
sourceCommit: 216794e76611c18e53222bb8efa570e898e990de
---

{{DefaultAPISidebar("URL API")}}

[`URL()` コンストラクター](/ja/docs/Web/API/URL/URL)、または {{domxref("URL.parse_static", "URL.parse()")}} 静的メソッド ([URL API](/ja/docs/Web/API/URL_API)) を使用すると、相対参照とベース URL を絶対 URL に解決することができます。

どちらのメソッドも、最大 2 つの文字列引数を取り、絶対 URL を表す [`URL()`](/ja/docs/Web/API/URL) オブジェクトを返します。
最初の引数は絶対 URL または URL への相対参照を表し、2 番目の引数は、最初の引数に相対参照が指定されている場合にその相対参照を解決するために使用されるベース URL です。
これらのメソッドは、無効な URL が渡されると `URL()` コンストラクターがエラーを発生させるのに対し、`parse()``null` を返すという点を除いて、同じ方法で相対参照を解決します。

下記コードは、同じ `url` および `base` URL 値を使用してメソッドがどのように使用されるかを示しています。

```js
const url = "articles";
const base = "https://developer.mozilla.org/some/path";
const constructorResult = new URL(url, base);
// => https://developer.mozilla.org/some/articles
const parseResult = URL.parse(url, base);
// => https://developer.mozilla.org/some/articles
```

例えば、指定されたベース URL と相対参照から `URL` を解決することは、単純に指定された引数を結合するだけではないことが分かります。

この場合、カレントディレクトリーに相対するパス (`articles`) が渡されます。
ベース URL のカレントディレクトリーは、最後のスラッシュまでの URL 文字列です。
この例では、`https://developer.mozilla.org/some/path` の末尾にスラッシュが指定されていないため、カレントディレクトリーは `https://developer.mozilla.org/some/` となり、最終的な URL は `https://developer.mozilla.org/some/articles` となります。

相対参照は、カレントディレクトリー (`./`)、カレントディレクトリーの親ディレクトリー (`../`)、またはサイトルート (`/`) に対する相対パス参照を使用して、ベース URL に対して解決されます。
以下の章では、相対パスの各タイプについて、解決の作業方法を表示させます。

## カレンとディレクトリーからの相対

`./` で始まる相対参照、または接頭辞のない参照、例えば `./article``article``./article/` は、`base` 引数で表される URL のカレントディレクトリーに対する相対参照です。

```html hidden
<pre id="log"></pre>
```

```css hidden
#log {
height: 90px;
padding: 0.5rem;
border: 1px solid black;
}
```

```js hidden
const logElement = document.getElementById("log");
function log(text) {
logElement.innerText += `${text}\n`;
}
```

ベース URL のカレントディレクトリーは、最後のスラッシュまでの URL 文字列であり、下記コードブロックのベース文字列どちらも `https://test.example.org/api/` です。
カレントディレクトリーから相対参照する `article` がこれに追加され、`https://test.example.org/api/article` に解決されます。

```js
log(new URL("./article", "https://test.example.org/api/").href);
// => https://test.example.org/api/article
log(new URL("article", "https://test.example.org/api/v1").href);
// => https://test.example.org/api/article
```

同様に、下記どちらのベース URL 文字列も、カレンとディレクトリーは `https://test.example.org/api/v2/` です。
最終的な URL を解決するために、これらに `story/``story` を追加します。

```js
log(new URL("./story/", "https://test.example.org/api/v2/").href);
// => https://test.example.org/api/v2/story/
log(new URL("./story", "https://test.example.org/api/v2/v3").href);
// => https://test.example.org/api/v2/story
```

{{EmbedLiveSample('Current directory relative', '100%', '140px')}}

## 親ディレクトリーからの相対

`../` という接頭辞が付いた相対参照、例えば `../path` は、`base` 引数で表される URL の現在のディレクトリーの親ディレクトリーに対する相対参照です。
`../` の各インスタンスは現在のディレクトリーからフォルダー内を削除し、`../` 以降のテキストは残りのベースパスに追加されます。
`../` を複数回指定することで親ディレクトリーに移動できますが、サイトルートのレベルまでです。

例えば、ベース URL `https://test.example.com/test/api/v1/` とその親の相対 URL `../some/path` が指定された場合、カレントディレクトリーは `https://test.example.com/test/api/v1/`、親ディレクトリーは `https://test.example.com/test/api/`、解決された絶対 URL は `https://test.example.com/test/api/some/path` となります。

```html hidden
<pre id="log"></pre>
```

```css hidden
#log {
height: 80px;
padding: 0.5rem;
border: 1px solid black;
}
```

```js hidden
const logElement = document.getElementById("log");
function log(text) {
logElement.innerText += `${text}\n`;
}
```

次の例では、この点をより詳しく説明します。
すべてのケースにおいて、カレントディレクトリーは `https://test.example.org/api/v1/v2/` です(2 つ目のケースでは、`v3` が最後のスラッシュの後に続きます)。相対参照はそれぞれ異なる親ディレクトリを指します。

```js
log(new URL("../path", "https://test.example.org/api/v1/v2/").href);
// => https://test.example.org/api/v1/path
log(new URL("../../path", "https://test.example.org/api/v1/v2/v3").href);
// => https://test.example.org/api/path
log(new URL("../../../../path", "https://test.example.org/api/v1/v2/").href);
// => https://test.example.org/path
```

{{EmbedLiveSample('Parent-directory relative', '100%')}}

## ルートからの相対

`/` 接頭辞付きの相対参照、たとえば `/path` は、`base` 引数で指定された URL のサイトルートに対する相対パスとなります。
例えば、ベース URL が `https://test.example.com/api/v1` の場合、ルート相対 URL `/some/path` の解決後の URL は `https://test.example.com/some/path` となります。

> [!NOTE]
> ルート相対 URL を解決すると、`base` URL のパス部分は関係なくなります。
```html hidden
<pre id="log"></pre>
```

```css hidden
#log {
height: 80px;
padding: 0.5rem;
border: 1px solid black;
}
```

```js hidden
const logElement = document.getElementById("log");
function log(text) {
logElement.innerText += `${text}\n`;
}
```

以下に、いくつか例を挙げます。

```js
log(new URL("/some/path", "https://test.example.org/api/").href);
// => https://test.example.org/some/path
log(new URL("/", "https://test.example.org/api/v1/").href);
// => https://test.example.org/
log(new URL("/article", "https://example.com/api/v1/").href);
// => https://example.com/article
```

{{EmbedLiveSample('Root relative', '100%')}}

## 関連情報

- [RFC 3986 - Relative Resolution](https://datatracker.ietf.org/doc/html/rfc3986.html#section-5.2): ベース及び相対 URL の解決の仕様書
Loading

0 comments on commit c40f3a6

Please sign in to comment.