recursal/MDN huggingface dataset:
MediaStreamTrack.enabled
========================

**`enabled`** は `MediaStreamTrack` インターフェイスのプロパティで、このトラックがソースストリームから出力が許可されている場合は `true`、そうでない場合は `false` となる論理値です。これは意図的にトラックをミュートするために使用することができます。

有効な場合、トラックのデータはソースから出力先に出力され、そうでない場合は空のフレームが出力されます。

音声の場合、無効なトラックは無音の（つまり、すべてのサンプルの値が 0 であるフレーム）を生成します。動画トラックでは、すべてのフレームが黒いピクセルで完全に埋められます。

一方 `muted` プロパティは、トラックが一時的にデータを出力できない状態（転送中にフレームが失われた場合など）を示しています。

**メモ:** トラックが接続されていない場合でも、このプロパティの値は変更可能ですが、効果はありません。

値
-

`true` の場合、 `enabled` はそのトラックが実際のメディアを出力にレンダリングすることが許可されていることを示します。 `enabled` が `false` に設定されている場合、トラックは空のフレームのみを生成します。

空のオーディオフレームは、すべてのサンプルの値が 0 に設定されます。空のビデオフレームは、すべてのピクセルが黒に設定されます。

**メモ:** ミュート/ミュート解除機能を実装する場合は、 `enabled` プロパティを使用してください。

使用上のメモ
------

この `MediaStreamTrack` がカメラからの動画入力を表している場合、 `enabled` を `false` に設定してトラックを無効にすると、カメラが現在録画やストリーミングをしていないことを示すデバイスアクティビティインジケーターも更新されます。例えば、 iMac や MacBook コンピューターでは、この方法でトラックをミュートしている間、カメラの横にある緑の「使用中」ランプが消灯します。

例
-

この例では、一時停止ボタンの `click` イベントハンドラーの使用例を示しています。


```js
pauseButton.onclick = function (evt) {
  const newState = !myAudioTrack.enabled;

  pauseButton.innerHTML = newState ? "&#x25B6;&#xFE0F;" : "&#x23F8;&#xFE0F;";
  myAudioTrack.enabled = newState;
};
```


これは、現在の `enabled` の値と逆の値である `newState` という変数を作成し、それを使用して、一時停止ボタンの要素の新しい `innerHTML` として "play" アイコンまたは "pause" アイコン用の絵文字を選択するものです。

最後に、新しい値を `enabled` に保存し、変更が有効になります。

仕様書
---

| Specification |
| --- |
| Media Capture and Streams # dom-mediastreamtrack-enabled |

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

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

関連情報
----

* MediaStream API
* `MediaStream`
* `MediaStreamTrack`
* WebRTC
MediaStreamTrack.id
===================

**`MediaStreamTrack.id`** は読み取り専用のプロパティであり、このトラックのための固有識別子 (GUID)を含む文字列を返します。この値はユーザーエージェントによって生成されます。

構文
--


```js
const id = track.id;
```

仕様書
---

| Specification |
| --- |
| Media Capture and Streams # dom-mediastreamtrack-id |

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

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

関連情報
----

* WebRTC
MediaStreamTrack.kind
=====================

**`MediaStreamTrack.kind`** は読み取り専用のプロパティであり、トラックの種類を示す文字列を返します。トラックが音声トラックの場合は `"audio"` を返し、映像トラックの場合は `"video"` を返します。トラックがソースから切り離されている場合は、何も変更されません。

値
-

有効な値は、以下のいずれかの値を取る文字列です。

* `"audio"`: このトラックは音声トラックです。
* `"video"`: このトラックは映像トラックです。
仕様書
---

| Specification |
| --- |
| Media Capture and Streams # dom-mediastreamtrack-kind |

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

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

関連情報
----

* WebRTC
MediaStreamTrack.readyState
===========================

**`MediaStreamTrack.readyState`** は読み取り専用のプロパティであり、トラックの状態を表す列挙値を返します。

値
-

以下の値の何れかを取ります。

* `"live"` は、入力が接続され、リアルタイムなデータがベストエフォートで提供されている状態を示します。この状態では、データの出力は、 `MediaStreamTrack.enabled` プロパティを用いて、オン/オフを切り替えることができます。
* `"ended"` は、入力がこれ以上データを提供せず、新しいデータも提供しないことを示します。
仕様書
---

| Specification |
| --- |
| Media Capture and Streams # dom-mediastreamtrack-readystate |

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

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

関連情報
----

* Media Stream API
* WebRTC
* `ended` イベント
MediaStreamTrack: mute イベント
===========================

**`mute`** イベントは、トラックのソースが一時的にメディアデータを提供することができなくなったときに `MediaStreamTrack` へ送られます。

トラックがメディア出力可能になると、 `unmute` が送られます。

`mute` イベントと `unmute` イベントとの間で、トラックの `muted` プロパティの値は `true` になります。

**メモ:** 多くの人が「ミュート」と考える状態（すなわち、トラックを無音にすることをユーザーが制御できる方法）は実際には `MediaStreamTrack.enabled` プロパティを使用して管理され、こちらではイベントが発生しません。

このイベントはキャンセル不可で、バブリングしません。

構文
--

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


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

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

イベント型
-----

一般的な `Event` です。

例
-

この例では、イベントハンドラーを `mute` および `unmute` の各イベントに設定し、 `MediaStreamTrack` が入った変数 `musicTrack` のソースからメディアが流れていない場合を検出しています。


```js
musicTrack.addEventListener(
  "mute",
  (event) => {
    document.getElementById("timeline-widget").style.backgroundColor = "#aaa";
  },
  false,
);

musicTrack.addEventListener(
  "unmute",
  (event) => {
    document.getElementById("timeline-widget").style.backgroundColor = "#fff";
  },
  false,
);
```


これらのイベントハンドラーのある場面で、トラック `musicTrack` が `muted` の状態になったとき、 `timeline-widget` の ID を持った要素の背景色が `#aaa` に変化します。トラックのミュート状態を抜けたことを — `unmute` イベントが到着したことによって — 検出すると、背景色は白に戻ります。

`onmute` イベントハンドラープロパティを使用してこのイベントのハンドラーを設定することもできます。同様に、 `onunmute` イベントハンドラープロパティが `unmute` イベントを設定するために利用できます。以下の例ではこれを示しています。


```js
musicTrack.onmute = event => {
  document.getElementById("timeline-widget").style.backgroundColor = "#aaa";
}

musicTrack.onunmute = event = > {
  document.getElementById("timeline-widget").style.backgroundColor = "#fff";
}
```

### レシーバーによるトラックのミュート

次の例は、レシーバーを使用してトラックをミュートする方法です。


```js
// Peer 1 (Receiver)
audioTrack.addEventListener("mute", (event) => {
  // Do something in UI
});

videoTrack.addEventListener("mute", (event) => {
  // Do something in UI
});

// Peer 2 (Sender)
const transceivers = peer.getTransceivers();

const audioTrack = transceivers[0];
audioTrack.direction = "recvonly";

const videoTrack = transceivers[1];
videoTrack.direction = "recvonly";
```


`transceivers` は `RTCRtpTransceiver` (en-US) の配列で、送受信される音声または映像トラックを見つけることができます。詳しくは `direction` (en-US) の記事を参照してください。

仕様書
---

| Specification |
| --- |
| Media Capture and Streams # dom-mediastreamtrack-onmute |

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

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

関連情報
----

* `unmute` イベント
* `direction` (en-US)
MediaStreamTrack.muted
======================

**`muted`** は `MediaStreamTrack` 読み取り専用のプロパティであり、トラックが現在メディア出力を提供できない状態であるかどうかを示します。

**メモ:** ユーザーがトラックをミュート/ミュート解除する方法を実装するには、`enabled` プロパティを使用してください。 `enabled` を `false` に設定してトラックを無効にすると、空のフレーム（すべてのサンプルが 0 である音声フレーム、またはすべてのピクセルが黒である映像フレーム）だけが生成されます。

値
-

論理値で、トラックが現在ミュートされている場合は `true` となり、ミュートされていない場合は `false` となります。

**メモ:** 可能であれば、`muted` をポーリングしてトラックのミュート状態を監視することは避けてください。
 代わりに、 `mute` と `unmute` イベントに対するイベントリスナーを追加してください。


例
-

この例では、 `MediaStreamTrack` オブジェクトの配列の中で、現在ミュートされているトラックの数を数えます。


```js
let mutedCount = 0;

trackList.forEach((track) => {
  if (track.muted) {
    mutedCount += 1;
  }
});
```

仕様書
---

| Specification |
| --- |
| Media Capture and Streams # dom-mediastreamtrack-muted |

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

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

**`MediaStreamTrack.stop()`** メソッドは、トラックを停止します。

構文
--


```js
stop();
```

### 引数

なし。

### 返値

なし (`undefined`)。

解説
--

`stop()` の呼び出しは、ユーザーエージェントへ、トラックのソース（ファイル、ネットワークストリーム、ローカルカメラやマイク）がこれ以上この `MediaStreamTrack` で必要とされないことを伝えます。複数のトラックが同じソースを使用すること（例えば、 2 つのタブが端末のマイクを使っている場合など）もあるため、ソースが必ずしも直ぐに停止させられる必要はありません。その代わり、トラックからの関連付けが解除され、そのトラックオブジェクトが停止されます。ソースからメディアトラックが使用されなくなると、ソースは実際に完全に停止させられるでしょう。

`stop()` を呼び出した直後に、 `readyState` の状態は `ended` になります。なお、この場合は `ended` イベントは発生しません。

例
-

### 映像ストリームの停止

この例では、この `<video>` の各トラックで `stop()` を呼び出すことで、ストリーミングされている映像を停止する関数を定義しています。


```js
function stopStreamedVideo(videoElem) {
  const stream = videoElem.srcObject;
  const tracks = stream.getTracks();

  tracks.forEach(function (track) {
    track.stop();
  });

  videoElem.srcObject = null;
}
```


`srcObject` プロパティから video 要素のストリームを取得することで機能しています。次に、 `getTracks()` メソッドを呼び出すことで、ストリームのトラックリストを取得しています。ここから、 `forEach()` を使ってトラックリストから各トラックを繰り返し呼び出し、それぞれのトラックで `stop()` メソッドを呼び出しています。

最後に、 `srcObject` に `null` を設定することで、この `MediaStream` オブジェクトへの参照を解き、解放できるようにします。

仕様書
---

| Specification |
| --- |
| Media Capture and Streams # dom-mediastreamtrack-stop |

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

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

関連情報
----

* このメソッドが属する `MediaStreamTrack` インターフェイス
* `MediaStreamTrack.readyState`
* `ended`
MediaStreamTrack: unmute イベント
=============================

**`unmute`** イベントは、トラックのソースが休止時間の後、再びメディアデータを提供するようになると `MediaStreamTrack` に送られます。

これは `mute` で始まった `muted` の状態を終了します。

**メモ:** 多くの人が「ミュート」と考える状態（すなわち、トラックを無音にすることをユーザーが制御できる方法）は実際には `MediaStreamTrack.enabled` プロパティを使用して管理され、こちらではイベントが発生しません。

このイベントはキャンセル不可で、バブリングしません。

構文
--

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


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

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

イベント型
-----

一般的な `Event` です。

例
-

この例では、イベントハンドラーを `mute` および `unmute` の各イベントに設定し、 `MediaStreamTrack` が入った変数 `musicTrack` のソースからメディアが流れていない場合を検出しています。


```js
musicTrack.addEventListener(
  "mute",
  (event) => {
    document.getElementById("timeline-widget").style.backgroundColor = "#aaa";
  },
  false,
);

musicTrack.addEventListener(
  "unmute",
  (event) => {
    document.getElementById("timeline-widget").style.backgroundColor = "#fff";
  },
  false,
);
```


これらのイベントハンドラーのある場面で、トラック `musicTrack` が `muted` の状態になったとき、 `timeline-widget` の ID を持った要素の背景色が `#aaa` に変化します。トラックのミュート状態を抜けたことを — `unmuted` イベントが到着したことによって — 検出すると、背景色は白に戻ります。

`onunmute` イベントハンドラープロパティを使用してこのイベントのハンドラーを設定することもできます。同様に、 `onmute` イベントハンドラープロパティを `mute` イベントを設定するために利用できます。以下の例ではこれを示しています。


```js
musicTrack.onmute = event => {
  document.getElementById("timeline-widget").style.backgroundColor = "#aaa";
}

musicTrack.mute = event = > {
  document.getElementById("timeline-widget").style.backgroundColor = "#fff";
}
```

### レシーバーでトラックのミュートを解除する

次の例は、レシーバーを使用してトラックのミュートを解除する方法です。


```js
// Peer 1 (Receiver)
audioTrack.addEventListener("unmute", (event) => {
  // Do something in UI
});

videoTrack.addEventListener("unmute", (event) => {
  // Do something in UI
});

// Peer 2 (Sender)
const transceivers = peer.getTransceivers();

const audioTrack = transceivers[0];
audioTrack.direction = "sendrecv";

const videoTrack = transceivers[1];
videoTrack.direction = "sendrecv";
```


`transceivers` は `RTCRtpTransceiver` (en-US) の配列で、送受信される音声または映像トラックを見つけることができます。詳しくは `direction` (en-US) の記事を参照してください。

仕様書
---

| Specification |
| --- |
| Media Capture and Streams # event-mediastreamtrack-unmute |

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

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

関連情報
----

* `mute` イベント
MediaStreamTrack: ended イベント
============================

**`ended`** は `MediaStreamTrack` インターフェイスのイベントで、メディアの終端に到達したため、あるいはそれ以上のデータが利用できないために再生やストリーミングが停止したときに発行さ れます。

このイベントはキャンセル不可で、バブリングしません。

構文
--

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


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

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

イベント型
-----

一般的な `Event` です。

使用上のメモ
------

`ended` イベントは、メディアストリームトラックのソースがストリームのデータ送信を恒久的に停止したときに発行されます。これが起こるには、以下のような様々な方法があります。

* 送信できるデータが残っていない。
* ユーザーがデータ送信に必要な権限を剥奪した。
* 送信元データを生成していたハードウェアが取り外されたか、排出された。
* リモート通信相手がデータの送信を永久に停止した。メディアを
例
-

この例では、 `ended` イベントのイベントハンドラーを設定しています。このイベントハンドラーでは、トラックがアクティブでない状態を示すために画面上のアイコンを変更します。


```js
track.addEventListener("ended", () => {
  let statusElem = document.getElementById("status-icon");
  statusElem.src = "/images/stopped-icon.png";
});
```


`onended` プロパティを使用してイベントハンドラーを設定することもできます。


```js
track.onended = function () {
  let statusElem = document.getElementById("status-icon");

  statusElem.src = "/images/stopped-icon.png";
};
```

仕様書
---

| Specification |
| --- |
| Media Capture and Streams # dom-mediastreamtrack-onended |

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

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

関連情報
----

* HTMLMediaElement の `playing` イベント
* HTMLMediaElement の `waiting` イベント
* HTMLMediaElement の `seeking` イベント
* `<audio>`
* `<video>`
* HTMLMediaElement の `ended` イベント
* AudioScheduledSourceNode の `ended` イベント
PictureInPictureEvent: PictureInPictureEvent() コンストラクター
=======================================================

**`PictureInPictureEvent()`** コンストラクターは、新しい `PictureInPictureEvent` オブジェクトをオプションの `EventTarget` と共に作成して返します。
 イベントに入力と出力の両方がある場合、`relatedTarget` 値には他にも対象とするものを設定する必要があります。

構文
--


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

### 引数

`type`

イベント名を表す文字列。

`options`

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

`relatedTarget` 省略可

関連する `EventTarget`、または `null` （既定値）です。


### 返値

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

仕様書
---

| Specification |
| --- |
| Picture-in-Picture # dom-pictureinpictureevent-pictureinpictureevent |

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

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

関連情報
----

* 所属先の `PictureInPictureEvent` インターフェイス
IDBFactory.cmp()
================

**`cmp()`** は `IDBFactory` インターフェイスのメソッドで、格納や反復処理などの IndexedDB 処理において、2 つの値をキーとして比較し、等しさや順序を決定します。

**注:** この機能は Web Worker 内で利用可能です

**メモ:** このメソッドを任意の JavaScript における値の比較に使用してはいけません。なぜなら、JavaScript の値の多くは IndexedDB の有効なキーではない（例えば、boolean や object）か、IndexedDB で等価なキーとして扱われるためです（例えば、IndexedDB は数値以外のプロパティを持つ配列を無視して空の配列として扱うため、数値でない配列は全て等価として扱われます）。このメソッドは、値のうちいずれかが有効なキーでないとき、例外を投げます。

構文
--


```js
cmp(first, second)
```

引数
--

`first`

比較する 1 つ目のキー。

`second`

比較する 2 つ目のキー。

### 返値

比較結果を示す整数値です。下記のテーブルでは、取りうる値とその意味を示しています。

| 返値 | 説明 |
| --- | --- |
| -1 | 1 つ目のキーが 2 つ目のキーより小さい |
| 0 | 1 つ目のキーと 2 つ目のキーが等しい |
| 1 | 1 つ目のキーが 2 つ目のキーより大きい |

### 例外

`DataError` `DOMException`

指定されたキーの何れかが有効なキーではなかった場合。

例
-


```js
const a = 1;
const b = 2;
const result = window.indexedDB.cmp(a, b);
console.log(`比較結果: ${result}`);
```

仕様書
---

| Specification |
| --- |
| Indexed Database API 3.0 # ref-for-dom-idbfactory-cmp① |

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

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

関連情報
----

* IndexedDB の使用
* トランザクションの開始: `IDBDatabase`
* トランザクションの使用: `IDBTransaction`
* キーの範囲の設定: `IDBKeyRange`
* データの取得と変更: `IDBObjectStore`
* カーソルの使用: `IDBCursor`
* リファレンス例: To-do Notifications (動く例を見る)
IDBFactory.databases()
======================

**`databases`** は `IDBFactory` のインターフェイスのメソッドは、利用可能な全てのデータベースのリストを、名前とバージョンを含めて返します。

**注:** この機能は Web Worker 内で利用可能です

**メモ:** このメソッドは仕様書の草稿で導入されており、ブラウザーの互換性は限られています。

構文
--


```js
databases()
```

### 引数

このメソッドは引数を取りません。

### 返値

エラーで解決するか、`name` と `version` の 2 個の要素からなる辞書のリストで解決するプロミスを返します。

`name`

データベースの名前です。

`version`

データベースのバージョンです。

### 例外

`SecurityError` `DOMException`

メソッドが opaque origin から呼ばれたとき投げられます。

例
-


```js
const promise = indexedDB.databases();
promise.then((databases) => {
  console.log(databases);
});
```

仕様書
---

| Specification |
| --- |
| Indexed Database API 3.0 # ref-for-dom-idbfactory-databases① |

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

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

関連情報
----

* IndexedDB の使用
* トランザクションの開始: `IDBDatabase`
* トランザクションの使用: `IDBTransaction`
* キーの範囲の設定: `IDBKeyRange`
* データの取得と変更: `IDBObjectStore`
* カーソルの使用: `IDBCursor`
* リファレンス例: To-do Notifications (動く例を見る)
IDBFactory.deleteDatabase()
===========================

**`deleteDatabase()`** は `IDBFactory` インターフェイスのメソッドで、データベースの削除を要求します。このメソッドは直ちに `IDBOpenDBRequest` オブジェクトを返し、非同期でデータベースの削除処理を行います。

データベースの削除が成功した場合、このメソッドから返された `request` オブジェクトにおいて、`result` に `undefined` が設定された状態で `success` イベントが発生します。 データベースの削除中にエラーが発生した場合、このメソッドから返された `request` オブジェクトで、`error` イベントが発生します。

`deleteDatabase()` が呼び出されると、この具体的なデータベースに対して開いている他の接続には versionchange イベントが送られます。

**注:** この機能は Web Worker 内で利用可能です

構文
--


```js
// 現行標準の場合
deleteDatabase(name)

// `options` （下記参照）を使用した実験的な版
deleteDatabase(name)
deleteDatabase(name, options)
```

### 引数

`name`

削除したいデータベースの名前。存在しないデータベースを削除しようとしても、例外は発生しません。これとは対照的に、 `IDBDatabase.deleteObjectStore()` は、指定したオブジェクトストアが存在しない場合に例外が発生します。

`options` 省略可 
Non-standard

Gecko では、バージョン 26 以降、`permanent`（既定値）の IndexedDB を削除するか、`temporary` ストレージ （別名共有プール）の indexedDB を削除するかを指定する、非標準のオプションストレージ引数を含めることができます。

### 返値

この要求に関連のある連続したイベントが発生する `IDBOpenDBRequest`。

処理が成功した場合、リクエストの `result` プロパティの値は `null` となります。

例
-


```js
const DBDeleteRequest = window.indexedDB.deleteDatabase("toDoList");

DBDeleteRequest.onerror = (event) => {
  console.error("データベースの削除中にエラーが発生しました。");
};

DBDeleteRequest.onsuccess = (event) => {
  console.log("データベースが正常に削除されました。");

  console.log(event.result); // null のはず
};
```

仕様書
---

| Specification |
| --- |
| Indexed Database API 3.0 # ref-for-dom-idbfactory-deletedatabase① |

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

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

関連情報
----

* IndexedDB の使用
* トランザクションの開始: `IDBDatabase`
* トランザクションの使用: `IDBTransaction`
* キーの範囲の設定: `IDBKeyRange`
* データの取得と変更: `IDBObjectStore`
* カーソルの使用: `IDBCursor`
* リファレンス例: To-do Notifications (動く例を見る)
IDBFactory.open()
=================

**`open()`** は `IDBFactory` インターフェイスのメソッドで、データベースへの接続を開くことを要求します。

 このメソッドは即座に `IDBOpenDBRequest` オブジェクトを返し、そして非同期でデータベースを開きます。
 操作が成功した場合、このメソッドから返される `request` オブジェクトに `result` の属性として接続のための新しい `IDBDatabase` オブジェクトが設定されて、`success` イベントが発生します。

`upgradeneeded`, `blocked`, `versionchange` イベントが発生することがあります。

**注:** この機能は Web Worker 内で利用可能です

構文
--


```js
open(name)
open(name, version)
```

### 引数

`name`

データベースの名前。

`version` 省略可

 省略可。データベースを開くバージョン。バージョンが提供されずにデータベースが存在した場合、データベースへの接続はバージョンを変更せずに開かれます。
 バージョンが提供されず、データベースも存在しなかった場合、バージョン番号 `1` が生成されます。


### 返値

この要求に関連のある連続したイベントが発生する `IDBOpenDBRequest` オブジェクト。

操作に成功した場合、リクエストの `result` プロパティの値は、データベースへの接続を表す `IDBDatabase` オブジェクトとなります。

### 例外

`TypeError`

`version` の値がゼロかマイナスの値、または数値でない場合。

例
-

`open` を現在の仕様書の `version` 引数を付けて呼び出す例です。


```js
const request = window.indexedDB.open("toDoList", 4);
```


次のコードスニペットは、データベースを開く要求をして、成功の場合と失敗の場合のイベントハンドラを登録しています。完璧に動作する例は、To-do Notifications アプリケーション (動く例を見る) を見てください。


```js
const note = document.querySelector("ul");

// データベースのバージョン 4 を開きましょう｡
const DBOpenRequest = window.indexedDB.open("toDoList", 4);

// これら 2 個のイベントハンドラーは､データベースが正常に開かれたか､
// 失敗した時に動作します｡
DBOpenRequest.onerror = (event) => {
  note.innerHTML += "<li>データベースの読み込みに失敗しました。</li>";
};

DBOpenRequest.onsuccess = (event) => {
  note.innerHTML += "<li>データベースを初期化しました。</li>";

  // データベースを開いた結果を変数 db に保存します｡
  // これはトランザクションを開くときなど、
  // 後でたくさん使います｡
  db = DBOpenRequest.result;
};
```

仕様書
---

| Specification |
| --- |
| Indexed Database API 3.0 # ref-for-dom-idbfactory-open② |

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

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

関連情報
----

* IndexedDB の使用
* ブラウザーのストレージ制限と削除基準
* トランザクションの開始 : `IDBDatabase`
* トランザクションの使用 : `IDBTransaction`
* キーの範囲の設定 : `IDBKeyRange`
* データの取得と変更 : `IDBObjectStore`
* カーソルの使用 : `IDBCursor`
* リファレンス例 : To-do Notifications (動く例を見る)
HashChangeEvent: oldURL プロパティ
=============================

**`oldURL`** は `HashChangeEvent` インターフェイスの読み取り専用プロパティで、ウィンドウが移動する前の URL を返します。

値
-

文字列です。

例
-


```js
window.addEventListener("hashchange", (event) => {
  console.log(`Hash changed from ${event.oldURL}`);
});
```

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-hashchangeevent-oldurl-dev |

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

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

**`HashChangeEvent()`** コンストラクターは、新しい `HashChangeEvent` オブジェクトを生成します。これは `window` オブジェクトで URL のフラグメントが変更されたときに発行される `hashchange` イベントで使用されます。

**メモ:** ウェブ開発者は通常このコンストラクターを呼び出す必要はありません。ブラウザーは `hashchange` イベントを発行するときにこれらのオブジェクトを自分で作成するからです。

構文
--


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

### 引数

`type`

 文字列で、このイベントの名前です。
 大文字小文字の区別があり、ブラウザーは `hashchange` に設定します。


`options` 省略可

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

`oldURL` 省略可

古い URL が入った文字列です。既定値は空文字列 (`""`) です。

`newURL`省略可

新しい URL が入った文字列です。既定値は空文字列 (`""`) です。


### 返値

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

仕様書
---

| Specification |
| --- |
| HTML Standard # the-hashchangeevent-interface |

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

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

関連情報
----

* `hashchange` イベント
HashChangeEvent: newURL プロパティ
=============================

**`newURL`** は `HashChangeEvent` インターフェイスの読み取り専用プロパティで、ウィンドウが移動する先の新しい URL を返します。

値
-

文字列です。

例
-


```js
window.addEventListener("hashchange", (event) => {
  console.log(`Hash changed to ${event.newURL}`);
});
```

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-hashchangeevent-newurl-dev |

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

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

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

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

**`sizeX`** は `VRStageParameters` インターフェイスの読み取り専用プロパティで、プレイエリア境界の幅をメートル単位で返します。

**メモ:** このプロパティは古い WebVR API の一部でした。これは WebXR 機器 API に置き換えられました。

境界は、安全性を目的として、床の平面上に軸に沿った矩形として定義されています。コンテンツは、この境界を超えてユーザが動いてしまうような動作をすべてきではありません。しかし、ユーザは境界を無視して動くこと自体は可能で、ユーザ位置がこの矩形境界の外側になることもあります。矩形の中心は、立位空間座標における (0,0,0) です。

値
-

float で表現された幅（メートル単位）。

例
-

コード例については `VRStageParameters` を参照してください。

仕様書
---

このプロパティは古い WebVR API の一部であり、これは WebXR 機器 API で置き枯れられました。標準規格になる見込みはありません。

すべてのブラウザーが新しい WebXR API を実装するまで、 A-Frame、Babylon.js、Three.js などのフレームワークを使用するか、ポリフィルを使用することが、すべてのブラウザーで動作する WebXR アプリを開発する上で推奨されます。[1]

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

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

関連情報
----

* WebVR API
VRStageParameters.sittingToStandingTransform
============================================

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

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

**`sittingToStandingTransform`** は `VRStageParameters` インターフェイスの読み取り専用プロパティで、 `VRFrameData` の座位空間ビュー行列を立位空間に変換する行列です。

**メモ:** このプロパティは古い WebVR API の一部でした。これは WebXR 機器 API に置き換えられました。

基本的には、レンダリングされたビューを座っている状態から立っている状態に変換するために、WebGL コードにこの値を渡すことができます。

値
-

4x4 の変換行列を成分として持つ 16 要素の `Float32Array` です．

例
-

コード例については `VRStageParameters` を参照してください。

仕様書
---

このプロパティは古い WebVR API の一部であり、これは WebXR 機器 API で置き枯れられました。標準規格になる見込みはありません。

すべてのブラウザーが新しい WebXR API を実装するまで、 A-Frame、Babylon.js、Three.js などのフレームワークを使用するか、ポリフィルを使用することが、すべてのブラウザーで動作する WebXR アプリを開発する上で推奨されます。[1]

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

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

関連情報
----

* WebVR API
VRStageParameters.sizeY
=======================

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

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

**`sizeY`** は `VRStageParameters` インターフェイスの読み取り専用プロパティで、プレイエリア境界の奥行きをメートル単位で返します。

**メモ:** このプロパティは古い WebVR API の一部でした。これは WebXR 機器 API に置き換えられました。

境界は、安全性を目的として、床の平面上に軸に沿った矩形として定義されています。コンテンツは、この境界を超えてユーザが動いてしまうような動作をすべてきではありません; しかし、ユーザは境界を無視して動くこと自体は可能で、ユーザ位置がこの矩形境界の外側になることもあります。矩形の中心は、立位空間座標における (0,0,0) です。

値
-

float で表現された奥行き（メートル単位）。

例
-

コード例については `VRStageParameters` を参照してください。

仕様書
---

このプロパティは古い WebVR API の一部であり、これは WebXR 機器 API で置き枯れられました。標準規格になる見込みはありません。

すべてのブラウザーが新しい WebXR API を実装するまで、 A-Frame、Babylon.js、Three.js などのフレームワークを使用するか、ポリフィルを使用することが、すべてのブラウザーで動作する WebXR アプリを開発する上で推奨されます。[1]

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

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

関連情報
----

* WebVR API