recursal/MDN huggingface dataset:
XRBoundedReferenceSpace.boundsGeometry
======================================

**安全なコンテキスト用:** この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

`XRBoundedReferenceSpace` の **`boundsGeometry`** 読み取り専用プロパティは、ビューアーが移動できる多角形の内部を構成する点を指定する `DOMPointReadOnly` オブジェクトの配列です。 各点は 2 次元の点として扱われ、地面レベルに配置する必要があります（つまり、その `y` 座標は 0 である必要があります）。

この境界は通常、XR ハードウェアを制御するソフトウェアを使用してユーザーが構成します。 これは、使用したい空間の境界を歩くか、XR 入力デバイスを使用して部屋の形状を描くことによって行うことができます。 理論的には、より高度なシステムでは、センサーやその他の検出方法を使用して、専用の XR ルーム（それを慎重にホロデッキとは呼んでいないことに気づきましたか？）の境界を決定する場合があります。

構文
--
```

bounds = xrReferenceSpace.boundsGeometry;
```

### 値

`boundsGeometry` プロパティは、`DOMPointReadOnly` オブジェクトの配列であり、各オブジェクトは、ビューアーが留まる必要がある多角形（polygon、ポリゴン）内の 1 つの頂点を定義します。 各点は床レベルにあり、`y` 座標の値は 0 に設定されている必要があります。 さらに、`w` の値は、配列内のすべての点で常に 1 です。 さらに、点は時計回りにリストする*必要があります*。

`boundsGeometry` の各エントリーは、部屋のネイティブの境界ジオメトリー点のリストのエントリーと同じであり、原点オフセットの逆数が事前に乗算されています。 言い換えると、境界は使用可能な空間の物理的な制限であり、参照空間の境界点がすべて `XRBoundedReferenceSpace` の実際の原点に対して定義されるようにシフトされます。

使用上の注意
------

制限付き参照空間の原点は常に地面レベルにあり、`y` は 0 です。 原則として、基盤となるプラットフォームまたは XR ハードウェアに応じたものとして、`x` と `z` の原点は空間の中心またはその近くにあり、向きは論理的前方を向いています。

部屋の境界がフィンガープリントの目的で使用されるリスクを減らすために、`boundsGeometry` 配列の各点は、丸められるか、ある程度調整される場合があります。 仕様では、ブラウザーが点を最も近い 5 センチメートルにシフトすることを推奨しています（ハードウェアの物理的な制限の外側に出ないようにしながら）。

### 境界の大きさ

`XRBoundedReferenceSpace` は、非常に大きな制限付き領域に使用することを目的としていません。 それよりも、ネイティブの原点から任意の方向に使用可能な移動空間が約 15 メートル以下の 1 部屋の空間に使用することを目的としています。 とはいえ、境界は 2 次元でのみ定義されるため、境界は無限に上向きに拡張されます。

複数部屋の空間を作成する必要がある場合、または非常に大きい空間やさまざまな床レベルが必要な場合は、代わりに無制限の `XRReferenceSpace` を使用し、必要に応じて独自に境界を適用する必要があります。

### 境界の形状

`boundsGeometry` によって定義される形状は、正方形のように単純な場合もあれば、必要に応じて複雑な場合もあり、凹部や凸部を含む可能性があります。 ただし、`XRBoundedReferenceSpace` を使用して、床レベルが不均一な空間を表すことはできません。 地面は*常に* `y` = 0 にあります。

ユーザーが `boundsGeometry` で指定された境界から出る必要があるようにコンテンツを設計していないことが重要です。 ただし、ユーザーの周囲が定義された境界を超えるように移動することを許可している場合、コンテンツはその状況を適切に処理できる必要があり、これはエラー状態とは見なされません。

一部のサンプルは、メッシュまたはその他の形状をレンダリングしてユーザーに境界を表示しますが、実際のアプリケーションでは、これを行うべきではありません。 ただし、ブラウザーは、リスク（移動し続けると、物理的な壁にぶつかる恐れなど）についてユーザーに適切な警告を提供する必要があります。

仕様
--

| Specification |
| --- |
| WebXR Device API # dom-xrboundedreferencespace-boundsgeometry |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
CompositionEvent: initCompositionEvent() メソッド
=============================================

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

**`initCompositionEvent()`** は `CompositionEvent` インターフェイスのメソッドで、 `CompositionEvent` オブジェクトインスタンスの属性を初期化します。

**メモ:** `CompositionEvent` を生成する正しい方法は、 `CompositionEvent()` コンストラクターを使用する方法です。

構文
--


```js
initCompositionEvent(type, canBubble, cancelable, view, data, locale)
```

### 引数

`type`

composition イベントの種類を表す文字列です。これは、 `compositionstart`, `compositionupdate`, `compositionend` のいずれかになります。

`canBubble`

論理値で、イベントがバブリング可能するかどうかを指定します。

`cancelableArg`

論理値で、イベントがキャンセル可能かどうかを表します。

`view`

イベント生成元の `Window` オブジェクト。

`data`

文字列で、`data` 属性の値を表します。

`localeArg`

文字列で、`locale` 属性の値を表します。

### 返値

なし (`undefined`)。

仕様書
---

このメソッドは標準化の予定がなくなりました。これは互換性のために残されています。 `CompositionEvent()` コンストラクターを使用してください。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `CompositionEvent`
CompositionEvent: locale プロパティ
==============================

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

**非標準:** この機能は標準ではなく、標準化の予定もありません。公開されているウェブサイトには使用しないでください。ユーザーによっては使用できないことがあります。実装ごとに大きな差があることもあり、将来は振る舞いが変わるかもしれません。

**`locale`** は `CompositionEvent` インターフェイスの読み取り専用のプロパティで、現在の入力システムのロケール（例えば、結合操作が IME に関連付けられているならばキーボードレイアウトのロケール）を返します。

**警告:** 対応しているブラウザーでも、このプロパティに含まれる値は信用しないでください。
 技術的にはアクセス可能であるとしても、 `CompositionEvent` を作成する際の設定方法が一貫している保証はありません。


値
-

文字列で、現在の入力システムのロケールを表します。

仕様書
---

このプロパティは、異なる仕様の早期のバージョンにありました。現在では互換性のためだけに残されており、 `CompositionEvent` を作成するときにその値を設定する方法はよく定義されていません。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `CompositionEvent`
CompositionEvent: data プロパティ
============================

**`data`** は `CompositionEvent` インターフェイスの読み取り専用プロパティで、
 このプロパティは、イベントを発生させた入力システムによって生成された文字を返します。その正確な性質は、 `CompositionEvent` オブジェクトを生成したイベントの種類によって異なります。

値
-

イベントデータを表す文字列です。

* `compositionstart` イベントの場合、これは現在選択されている文字列で、変換中の文字列で置き換えられます。この値は、コンテンツが選択範囲を変更しても変更されません。むしろ、変換が始まったときに選択されていた文字列を示します。
* `compositionupdate` の場合、編集中の現在の文字列となります。
* `compositionend` イベントの場合、これは入力システムが確定した文字列です。
仕様書
---

| Specification |
| --- |
| UI Events # dom-compositionevent-data |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `CompositionEvent`
CompositionEvent: CompositionEvent() コンストラクター
=============================================

**`CompositionEvent()`** コンストラクターは、新しい `CompositionEvent` オブジェクトのインスタンスを作成します。

構文
--


```js
new CompositionEvent(type)
new CompositionEvent(type, options)
```

### 値

`type`

 イベントの名前を表す文字列です。
 大文字小文字の区別があり、ブラウザーは `compositionstart`, `compositionupdate`, `compositionend` の何れかに設定します。


`options` 省略可

*`UIEvent()` で定義されているプロパティに加えて*、以下のプロパティがあるオブジェクトです。

`data` 省略可

文字列で、新しい `CompositionEvent` の `data` プロパティを初期化するために使用されます。ブラウザーで生成されたイベントでは、 IME の変換で生成された文字に設定されます。


### 返値

新しい `CompositionEvent` オブジェクトです。

仕様書
---

| Specification |
| --- |
| UI Events # dom-compositionevent-compositionevent |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `CompositionEvent`: これが構築するオブジェクトのインターフェイス。
AbortSignal: abort イベント
=======================

**`abort`** は `AbortSignal` のイベントで、関連するリクエストが中止されたとき、つまり `AbortController.abort()` を使用して中止されたときに発行されます。

構文
--

このイベント名を `addEventListener()` などのメソッドで使用するか、イベントハンドラープロパティを設定するかしてください。


```js
addEventListener('abort', (event) => { })

onabort = (event) => { }
```

イベント型
-----

一般的な `Event` で、追加のプロパティはありません。

例
-

以下のスニペットでは、新しい `AbortController` オブジェクトを作成し、その `AbortSignal` （`signal` プロパティを使用して利用できます）を取得します。次に、イベントハンドラープロパティを使用して、シグナルが中止されたかどうかを調べます。

`abort` イベントを `addEventListener` メソッドで検出することができます。


```js
const controller = new AbortController();
const signal = controller.signal;

signal.addEventListener("abort", () => {
  console.log("Request aborted");
});
```


または、 `onabort` イベントハンドラープロパティを使用してください。


```js
const controller = new AbortController();
const signal = controller.signal;

signal.onabort = () => {
  console.log("Request aborted");
};
```

仕様書
---

| Specification |
| --- |
| DOM Standard # eventdef-abortsignal-abort |
| DOM Standard # abortsignal-onabort |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
AbortSignal.timeout()
=====================

静的な **`AbortSignal.timeout()`** メソッドは、指定した時間が経過すると自動的に中止する `AbortSignal` を返すものです。

 このシグナルは、タイムアウト時には `TimeoutError` `DOMException` で、ブラウザーの停止ボタン（または他にも組み込まれた「停止」処理）を押した場合には `AbortError` `DOMException` で中止されます。
 これにより、通常ユーザーへの通知が必要なタイムアウトエラーと、そうでないユーザーによる中止の発生を UI で区別できます。

タイムアウトは経過時間ではなく活動時間に基づきます。コードが実行されているワーカーがサスペンドされている場合や、文書がバックフォワードキャッシュ ("bfcache") にある場合は、事実上一時停止されます。

**メモ:** 執筆時点では、複数のシグナルを組み合わせる方法はありません。
 つまり、タイムアウトシグナルを使用するか、`AbortController.abort()`を呼び出してダウンロードを直接中止することはできません。


構文
--


```js
timeout(time)
```

### 引数

`time`

返された `AbortSignal` が中止するまでの「アクティブ」な時間をミリ秒単位で指定します。

### 返値

`AbortSignal` です。

このシグナルはタイムアウト時に `AbortSignal.reason` プロパティに `TimeoutError` `DOMException` が、ユーザーによって処理が発生した場合には `AbortError` `DOMException` が設定されて中断されます。

例
-

 フェッチ処理に失敗した場合、5 秒後にタイムアウトする単純な例を下記に示します。
 このメソッドが対応していない場合、ブラウザーの「停止」ボタンが押された場合、他にも何らかの理由で失敗する可能性があることに注意してください。


```js
const url = "https://path\_to\_large\_file.mp4";

try {
  const res = await fetch(url, { signal: AbortSignal.timeout(5000) });
  const result = await res.blob();
  // …
} catch (err) {
  if (err.name === "TimeoutError") {
    console.error("Timeout: It took more than 5 seconds to get the result!");
  } else if (err.name === "AbortError") {
    console.error(
      "Fetch aborted by user action (browser stop button, closing tab, etc.",
    );
  } else if (err.name === "TypeError") {
    console.error("AbortSignal.timeout() method is not supported");
  } else {
    // A network error, or some other problem.
    console.error(`Error: type: ${err.name}, message: ${err.message}`);
  }
}
```

仕様書
---

| Specification |
| --- |
| DOM Standard # ref-for-dom-abortsignal-timeout① |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
AbortSignal.throwIfAborted()
============================

\*\*`throwIfAborted()`\*\*メソッドは、シグナルが中止された場合、シグナルの中止理由 (`reason`) の例外を発生させ、それ以外の場合は何もしません。

中止に対応させる必要がある API は、`AbortSignal` オブジェクトを受け入れ、 `throwIfAborted()` を使用して `abort` イベントが発生するとテストして例外を発生するようにすることができます。

このメソッドは、シグナルを受け取る関数に渡すのではなく、コード内の特定の点で処理を中止するために使用することもできます。

構文
--


```js
throwIfAborted()
```

### 引数

なし。

### 返値

なし (`undefined`)。

例
-

下記の例は、仕様書から引用しています。

### ポーリング操作の中止

この例では、ポーリング処理を中止するために `throwIfAborted()` を使用する方法を紹介します。

 非同期の `waitForCondition()` 関数が、別の非同期関数 `func`、対象となる値 `targetValue`、そして `AbortSignal` と共に呼び出される場合を考えてみます。
 このメソッドでは、ループの中で `func` の結果と `targetValue` を比較し、一致したら返します。


```js
async function waitForCondition(func, targetValue, { signal } = {}) {
  while (true) {
    signal?.throwIfAborted();

    const result = await func();
    if (result === targetValue) {
      return;
    }
  }
}
```


 ループを反復処理するたびに、 `throwIfAborted()` を使用して、もし処理が中止された場合にはシグナルの `reason` を例外として投げます（それ以外の場合は何もしません）。
 シグナルが中止された場合、 `waitForCondition()` のプロミスが拒否されます。

### 中止可能な API の実装

中止することを対応する必要がある API は `AbortSignal` オブジェクトを受け入れ、必要なときにその状態を使用して中止シグナル処理を開始させることができます。

`Promise` ベースの API は、`AbortSignal` の中止理由 (`reason`) で未確定のプロミスを拒否して、中止シグナルに応答する必要があります。
 例えば、シグナルを受け取ってプロミスを返す以下の `myCoolPromiseAPI` を考えてみましょう。
 シグナルが既に中止されている場合、あるいは中止イベントが検出された場合、プロミスは直ちに拒否されます。
 そうでなければ、プロミスは完全に終了し、プロミスを解決します。


```js
function myCoolPromiseAPI(/\* … ,\*/ { signal }) {
  return new Promise((resolve, reject) => {
    // If the signal is already aborted, immediately throw in order to reject the promise.
    if (signal.aborted) {
      reject(signal.reason);
    }

    // Perform the main purpose of the API
    // Call resolve(result) when done.

    // Watch for 'abort' signals
    signal.addEventListener("abort", () => {
      // Stop the main operation
      // Reject the promise with the abort reason.
      reject(signal.reason);
    });
  });
}
```


 そして、 API は次のように使用されるかもしれません。
 処理を中止するために `AbortController.abort()` が呼び出されることに注意してください。


```js
const controller = new AbortController();
const signal = controller.signal;

startSpinner();

myCoolPromiseAPI({ /\* … ,\*/ signal })
  .then((result) => {})
  .catch((err) => {
    if (err.name === "AbortError") return;
    showUserErrorMessage();
  })
  .then(() => stopSpinner());

controller.abort();
```


 プロミスを返さない API も同じように反応するかもしれません。
 場合によっては、そのシグナルを吸収することが意味を持つかもしれません。

仕様書
---

| Specification |
| --- |
| DOM Standard # ref-for-dom-abortsignal-throwifaborted① |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* フェッチ API
AbortSignal.reason
==================

**`reason`** は読み取り専用プロパティで、中止の理由を示す JavaScript の値を返します。

 このプロパティは、シグナルが中止されていないときは `undefined` です。
 シグナルが中止されたときに、`AbortController.abort()` または `AbortSignal.abort()` によって特定の値に設定することができる。
 これらのメソッドで明示的に設定されていない場合、既定では "AbortError" `DOMException` になります。

値
-

中止の理由を示す JavaScript の値で、中止されない場合は `undefined` となります。

例
-

 以下のスニペットでは、新しい `AbortController` オブジェクトを作成し、その `AbortSignal` （`signal` プロパティを使用して利用できます）を取得します。
 その後、`aborted` プロパティを使用して、シグナルが中止されたかどうかを調べ、中止の状況と理由をコンソールにログ出力しています。


```js
const controller = new AbortController();
const signal = controller.signal;

// …

if (signal.aborted) {
  if (signal.reason) {
    console.log(`Request aborted with reason: ${signal.reason}`);
  } else {
    console.log("Request aborted but no reason was given.");
  }
} else {
  console.log("Request not aborted");
}
```

仕様書
---

| Specification |
| --- |
| DOM Standard # ref-for-dom-abortsignal-reason① |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* フェッチ API
AbortSignal.aborted
===================

**`aborted`** は読み取り専用プロパティで、そのシグナルが通信している DOM リクエストが中止されているか (`true`)、されていないか (`false`) を示す値を返します。

値
-

`true` （中止）または `false`

例
-

 以下のスニペットでは、新しい `AbortController` オブジェクトを作成し、その `AbortSignal` （`signal` プロパティを使用して利用できます）を取得します。
 その後、`aborted` プロパティを使用して、シグナルが中止されたかどうかを調べ、コンソールに適切なログを出力しています。


```js
const controller = new AbortController();
const signal = controller.signal;

// …

if (signal.aborted) {
  console.log("Request has been aborted");
} else {
  console.log("Request not aborted");
}
```

仕様書
---

| Specification |
| --- |
| DOM Standard # ref-for-dom-abortsignal-aborted① |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* フェッチ API
AbortSignal.abort()
===================

静的な **`AbortSignal.abort()`** メソッドは、既に中止と設定されている（かつ `abort` イベントが発生していない） `AbortSignal` を返します。

これは、以下のコードの一連で行うものです。


```js
const controller = new AbortController();
controller.abort();
return controller.signal;
```


これは、例えば、フェッチメソッドの中止ロジックを実行するために渡される可能性があります （つまり、意図したフェッチ処理が開始されていなくても中止ロジックが実行されるように コードが構成されていることがあります）。

**メモ:** このメソッドは `Promise.reject` と同じような目的を持っています。

構文
--


```js
abort()
abort(reason)
```

### 引数

`reason`

 処理が中断された理由。任意の JavaScript の値を指定可能です。
 指定しない場合、理由は "AbortError" `DOMException` に設定されます。


### 返値

`AbortSignal` インスタンスの `AbortSignal.aborted` プロパティを `true` に設定し、 `AbortSignal.reason` に指定された（または既定の）理由を設定したものです。

仕様書
---

| Specification |
| --- |
| DOM Standard # ref-for-dom-abortsignal-abort① |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
XRReferenceSpaceEvent: transform プロパティ
======================================

`XRReferenceSpaceEvent` の **`transform`** 読み取り専用プロパティは、イベントが表す変更が適用された後の、影響を受ける `referenceSpace` のネイティブの原点の位置と向きを示します。 `transform` は古い座標系を使用して定義します。 これにより、座標をイベント前の座標系からイベント後の座標系に変換するために使用できます。

### 値

座標をイベント前の座標系からイベント後の座標系に変換するために使用できる変換を提供する `XRRigidTransform` オブジェクト。

使用上の注意
------

`reset` イベントを受信すると、キャッシュされた位置または向きの情報に変換を適用して、それらを更新された座標系にシフトできます。 または、キャッシュされた位置情報を破棄して、最初から再計算することもできます。 あなたが取るアプローチはあなたのニーズに依存します。

`reset` イベントの原因と対応方法の詳細については、`reset` イベントのドキュメントを参照してください。

例
-

この例では `reset` イベントを処理します。その中で、シーン内のすべてのオブジェクトを走査し、各オブジェクトの位置にイベントの指定された `transform` を掛けて更新します。シーンは `scene` オブジェクトで表され、その中にある `objects` と呼ばれる配列にすべてのオブジェクトが含まれています。


```js
xrReferenceSpace.addEventListener("reset", (event) => {
  for (const obj of scene.objects) {
    mat4.multiply(obj.transform, obj.transform, event.transform);
  }
});
```

仕様書
---

| Specification |
| --- |
| WebXR Device API # dom-xrreferencespaceevent-transform |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
XRReferenceSpaceEvent: XRReferenceSpaceEvent() コンストラクター
=======================================================

**`XRReferenceSpaceEvent()`** コンストラクターは、新しい `XRReferenceSpaceEvent` オブジェクトを生成するために使用します。 これは、WebXR 参照空間オブジェクト `XRReferenceSpace` の状態に関するイベントを表します。

構文
--


```js
new XRReferenceSpaceEvent(type, options)
```

### 引数

`type`

 イベントの名前の入った文字列です。
 大文字小文字を区別し、ブラウザーは常に `reset` を設定します。


`options`

オブジェクトで、 *`Event()` で定義されているプロパティに加え*、以下のプロパティを持ちます。

`referenceSpace`

イベントの発生元の `XRReferenceSpace` です。

`transform`

古い座標系（このイベントによって示される変更の前のもの）を新しい座標系にマップする `XRRigidTransform` です。


### 返値

入力引数で定義されたとおりに初期化された、新しい `XRReferenceSpaceEvent` オブジェクト。

例
-

この単純なスニペットでは、コンストラクターを呼び出して `reset` 型の新しい参照空間イベントを生成します。


```js
let refSpaceEvent = new XRReferenceSpaceEvent("reset", {
  referenceSpace: myRefSpace,
  transform: myTransform,
});
```

仕様書
---

| Specification |
| --- |
| WebXR Device API # dom-xrreferencespaceevent-xrreferencespaceevent |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
XRReferenceSpaceEvent: referenceSpace プロパティ
===========================================

`XRReferenceSpaceEvent` の **`referenceSpace`** プロパティは読み取り専用で、イベントの発生元である参照空間を指定します。

値
-

イベントのソースを示す `XRReferenceSpace`。

例
-

仕様書
---

| Specification |
| --- |
| WebXR Device API # dom-xrreferencespaceevent-referencespace |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
DOMStringList: contains() メソッド
==============================

**`contains()`** メソッドは、指定された文字列がリスト内にあるかどうかを示す論理値を返します。

構文
--


```js
contains(string)
```

### 引数

`string`

リスト内に存在するかどうかを調べたい文字列。

### 返値

指定された文字列がリストにあるかどうかを示す論理値です。

### 例外

`TypeError`

引数が指定されなかった場合に発生します。

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-domstringlist-contains |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
DOMStringList: length プロパティ
===========================

読み取り専用の **`length`** プロパティは、`DOMStringList` の中にある文字列の数を示します。

値
-

`Number` です。

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-domstringlist-length |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
DOMStringList: item() メソッド
==========================

**`item()`** メソッドは、`DOMStringList` からインデックスによって文字列を返します。

構文
--


```js
item(index)
```


JavaScript では `DOMStringList` からインデックスで項目を取得するための配列風の括弧構文も提供しています。


```js
list[index];
```

### 引数

`index`

取得する文字列のインデックス。インデックスはゼロ起点です。

### 返値

`DOMStringList` のインデックスの位置にある文字列です。指定されたインデックスが範囲外である場合は `null` です。

### 例外

`TypeError`

引数が指定されなかった場合に発生します。

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-domstringlist-item |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
FontFaceSet: ready プロパティ
========================

`ready` は `FontFaceSet` インターフェイスの読み取り専用プロパティで、指定された `FontFaceSet` を解決する `Promise` を返します。

このプロミスが解決されるのは、文書のフォントの読み込みが完全に終了し、レイアウト処理が完了し、それ以上フォントを読み込む必要がなくなったときだけです。

値
-

指定された `FontFaceSet` を解決する `Promise` です。

例
-

次の例では、プロミスが解決されると `ready` の値がコンソールに出力されます。


```js
async function isReady() {
  let ready = await document.fonts.ready;
  console.log(ready);
}

isReady();
```

仕様書
---

| Specification |
| --- |
| CSS Font Loading Module Level 3 # dom-fontfaceset-ready |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
FontFaceSet: loadingerror イベント
==============================

`loadingerror` イベントは、フォントの読み込みが完了したが、一部またはすべてのフォントの読み込みに失敗した場合に発生します。

構文
--

このイベント名を `addEventListener()` などのメソッドで使用するか、イベントハンドラープロパティを設定するかしてください。


```js
addEventListener("loadingerror", (event) => {});

onloadingerror = (event) => {};
```

例
-

次の例では、フォント `Ephesis` が読み込めなかった場合、"Font loading error" とコンソールに出力されます。


```js
document.fonts.onloadingerror = () => {
  console.log("Font loading error");
};

(async () => {
  await document.fonts.load("16px Ephesis");
})();
```

仕様書
---

| Specification |
| --- |
| CSS Font Loading Module Level 3 # dom-fontfaceset-onloadingerror |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
FontFaceSet: clear() メソッド
=========================

**`clear()`** は `FontFaceSet` インターフェイスのメソッドで、このインターフェイスを介して追加されたすべてのフォントを除去します。 `@font-face` ルールで追加されたフォントは除去されません。

構文
--


```js
clear()
```

### 引数

なし。

### 返値

なし (`undefined`)。

仕様書
---

| Specification |
| --- |
| CSS Font Loading Module Level 3 # dom-fontfaceset-clear |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
FontFaceSet: delete() メソッド
==========================

**`delete()`** は `FontFaceSet` インターフェイスのメソッドで、集合からフォントを除去します。

CSS の `@font-face` ルールを使用して集合に追加されたフォントフェイスは、対応する CSS に接続されたままであり、削除することはできません。

構文
--


```js
delete(font)
```

### 引数

`font`

集合から除去される `FontFace` です。

### 返値

論理値で、削除に成功した場合は `true`、失敗した場合は `false` を返します。

例
-

次の例では、新しい `FontFace` オブジェクトを作成し、`FontFaceSet` から削除します。


```js
const font = new FontFace("MyFont", "url(myFont.woff2)");
document.fonts.delete(font);
```

仕様書
---

| Specification |
| --- |
| CSS Font Loading Module Level 3 # dom-fontfaceset-delete |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
FontFaceSet: status プロパティ
=========================

**`status`** は `FontFaceSet` インターフェイスの読み取り専用プロパティで、集合内にあるフォントの読み込み状態を返します。

値
-

次のうちのいずれかです。

* `"loading"`
* `"loaded"`
例
-

次の例では、`FontFaceSet` の `status` がコンソールに表示されます。


```js
console.log(document.fonts.status);
```

仕様書
---

| Specification |
| --- |
| CSS Font Loading Module Level 3 # dom-fontfaceset-status |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
FontFaceSet: forEach() メソッド
===========================

**`forEach()`** は `FontFaceSet` インターフェイスのプロパティで、 `FontFaceSet` オブジェクトの各値に対して指定された関数を実行します。

構文
--


```js
forEach(callbackFn)
forEach(callbackFn, thisArg)
```

### 引数

`callbackFn`

各要素に対して実行する関数で、 引数を 3 つ取ります。

`value`, `key`

`FontFaceSet` で処理されている現在の要素。 `FontFaceSet` にはキーがないので、両方の引数に値が渡されます。

`set`

`forEach()` が呼び出された `FontFaceSet` です。


`thisArg`

`callbackFn` 実行時に `this` として使用する値です。

### 返値

undefined です。

仕様書
---

#### No specification found

No specification data found for `api.FontFaceSet.forEach`.  
Check for problems with this page or contribute a missing `spec_url` to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.