recursal/MDN huggingface dataset:
HTMLFormElement: action プロパティ
=============================

**`HTMLFormElement.action`** プロパティは、この `<form>` 要素のアクションを表します。

フォームのアクションは、フォームが送信されたときにサーバー上で実行されるプログラムです。このプロパティは、取得または設定することができます。

構文
--

文字列です。

例
-


```js
form.action = "/cgi-bin/publish";
```

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-fs-action |

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

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

**`reset`** イベントは `<form>` がリセットされたときに発行されます。

構文
--

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


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

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

イベント型
-----

一般的な `Event` です。

例
-

この例は `EventTarget.addEventListener()` を使用してフォームがリセットされるのを、実行されたときに現在の `Event.timeStamp` をログ出力します。

### HTML


```html
<form id="form">
  <label>Test field: <input type="text" /></label>
  <br /><br />
  <button type="reset">Reset form</button>
</form>
<p id="log"></p>
```

### JavaScript


```js
function logReset(event) {
  log.textContent = `Form reset! Timestamp: ${event.timeStamp}`;
}

const form = document.getElementById("form");
const log = document.getElementById("log");
form.addEventListener("reset", logReset);
```

### 結果

仕様書
---

| Specification |
| --- |
| HTML Standard # event-reset |

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

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

関連情報
----

* HTML の `<form>` 要素
HTMLFormElement: acceptCharset プロパティ
====================================

**`HTMLFormElement.acceptCharset`** プロパティは、指定された `<form>` 要素で対応している文字エンコーディング の一覧を表します。このリストは、カンマ区切りまたはスペース区切りで記述することができます。

値
-

文字列です。

例
-


```js
let inputs = document.forms["myform"].acceptCharset;
```

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-form-acceptcharset |

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

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

**`HTMLFormElement.reset()`** メソッドは、フォーム要素の既定値を復元します。このメソッドはフォームの `<input type="reset">` コントロールをクリックするのと同じことを行います。

もしあるフォームコントロール（リセットボタンなど）が *reset* という形の名前か ID を持っていると、フォームの reset メソッドを隠してしまいます。これは `disabled` のような、入力の他の属性をリセットするものではありません。

もし `setAttribute()` を呼び出して特定の属性の値を設定した場合、その後に `reset()` を呼び出してもその属性は既定値にリセットされず、代わりに `setAttribute()` を呼び出して設定した値を維持することに注意ください。

構文
--


```js
reset()
```

### 引数

なし。

### 返値

なし (`undefined`)。

例
-


```js
document.getElementById("myform").reset();
```

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-form-reset-dev |

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

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

**`target`** は `HTMLFormElement` インターフェイスのプロパティで、このフォームのアクションのターゲット（すなわち、出力結果が描画されるフレーム）を表します。

値
-

文字列です。

例
-


```js
myForm.target = document.frames[1].name;
```

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-fs-target |

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

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

**`HTMLFormElement.submit()`** メソッドは、このフォーム (`<form>`) を送信します。

このメソッドは、フォームの送信 `<button>` をアクティブにするのと似ていますが、同じではありません。ただ、このメソッドを直接呼び出す場合は、

* `submit` イベントは発生しません。特に、フォームの `onsubmit` イベントハンドラーは実行されません。
* 制約検証は行われません。

`HTMLFormElement.requestSubmit()` メソッドはフォームの送信ボタン (`<button>`) を使用にするのと同じで、これらの相違点はありません。

フォームコントロール（送信ボタンなど）に `name` または `id` が `submit` のものがある場合、`submit` メソッドがマスクされます。`myForm.submit();` を呼び出そうとすると "submit is not a function" のエラーが発生します。この場合、`submit` が `name` または `id` が `submit` であるコントロールを参照しているからです。

`<input>` で type="submit" の属性を持つものは **`HTMLFormElement.submit()`** ではフォームと一緒に送信されませんが、本来の HTML フォームの送信で行う場合は送信されます。

構文
--


```js
submit()
```

### 引数

なし。

### 返値

なし (`undefined`)。

例
-


```js
document.forms["myform"].submit();
```

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-form-submit-dev |

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

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

**`formdata`** イベントは、フォームのデータを表す項目リストが構築された後に発行されます。このイベントは、フォームが送信されたときに発行されますが、 `FormData()` コンストラクターが呼び出されたときにも発行されます。

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

構文
--

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


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

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

イベント型
-----

`FormDataEvent` です。 `Event` から継承しています。

Event

FormDataEventイベントプロパティ
---------

*親インターフェイスである `Event` から継承したプロパティがあります。*

`FormDataEvent.formData`

イベントが発行されたときにフォームに含まれていたデータを表す `FormData` オブジェクトが格納されています。

例
-


```js
// フォームの参照を得る

const formElem = document.querySelector("form");

// submit ハンドラー

formElem.addEventListener("submit", (e) => {
  // フォームの送信時、既定の動作を抑止
  e.preventDefault();

  console.log(formElem.querySelector('input[name="field1"]')); // FOO
  console.log(formElem.querySelector('input[name="field2"]')); // BAR

  // FormData オブジェクトを構築し、 formdata イベントが発行される
  const formData = new FormData(formElem);
  // formdata は formdata イベントで変更されます。
  console.log(formData.get("field1")); // foo
  console.log(formData.get("field2")); // bar
});

// データを受け取るための formdata ハンドラー

formElem.addEventListener("formdata", (e) => {
  console.log("formdata fired");

  // イベントオブジェクトからフォームデータを取得する
  const formData = e.formData;
  // formdata イベントでフォームデータを変更する
  formData.set("field1", formData.get("field1").toLowerCase());
  formData.set("field2", formData.get("field2").toLowerCase());
});
```


`onformdata` 版はこのようになります。


```js
formElem.onformdata = (e) => {
  console.log("formdata fired");

  // フォームデータを変更
  const formData = e.formData;
  formData.set("field1", formData.get("field1").toLowerCase());
  formData.set("field2", formData.get("field2").toLowerCase());
};
```

仕様書
---

| Specification |
| --- |
| HTML Standard # event-formdata |

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

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

関連情報
----

* HTML の `<form>` 要素
* `FormDataEvent`
HTMLFormElement: reportValidity() メソッド
======================================

Baseline 2023
-------------

Newly availableSince March 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

* Learn more
* See full compatibility
* Report feedback

**`HTMLFormElement.reportValidity()`** メソッドは、この要素の子コントロールが制約検証を満たしていれば `true` を返します。
 `false` が返された場合、キャンセル可能な
 `invalid` イベントが無効な子要素それぞれについて発行され、ユーザーに検証の問題を報告します。

構文
--


```js
reportValidity()
```

### 返値

`true` または `false`

例
-


```js
document.forms["myform"].addEventListener(
  "submit",
  () => {
    document.forms["myform"].reportValidity();
  },
  false,
);
```

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-cva-reportvalidity-dev |

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

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

**`HTMLFormElement.name`** プロパティは、現在の `<form>` 要素の名前を文字列で表します。

`<form>` 要素の中に *name* という名前の要素があると、その要素は `form.name` プロパティを上書きするので、それにアクセスすることはできません。

値
-

文字列です。

例
-


```js
const form1name = document.getElementById("form1").name;

if (form1name !== document.form.form1) {
  // ブラウザーがこの形の参照に対応していない
}
```

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-form-name |

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

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

**`HTMLFormElement.enctype`** プロパティは、サーバーにフォームを送信するために使用されるコンテンツの MIME タイプを指定します。使用可能な値は以下の通りです。

* `application/x-www-form-urlencoded`: 初期値（既定値）です。
* `multipart/form-data`: `<input>` 要素にファイルデータをアップロードできるようにする型。
* `text/plain`: 形式があいまいで、人間が読み取り可能なコンテンツであり、コンピューターで確実に解釈できるとは限りません。

この値は `formenctype` 属性を `<button>` または `<input>` 要素に指定することで上書きすることができます。

値
-

文字列です。

例
-


```js
form.enctype = "application/x-www-form-urlencoded";
```

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-fs-enctype |

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

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

**`HTMLFormElement.length`** は読み取り専用のプロパティで、 `<form>` 要素に含まれるコントロールの数を返します。

フォームのコントロールの一覧には `elements` プロパティを使用してアクセスすることができます。

これは `<form>` 要素の子孫である要素、および `form` プロパティを使用してフォームのメンバーになった要素の両方が含まれます。

このプロパティで扱われる要素は、 `<button>`, `<fieldset>`, `<input>` （ただし、 "image" 型のものは、歴史的な理由によって除外されます）、`<object>`, `<output>`, `<select>`, `<textarea>` です。

値
-

数値です。

例
-


```js
if (document.getElementById("form1").length > 1) {
  // 複数のフォームコントロールがある場合
}
```

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-form-length-dev |

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

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

**`HTMLFormElement.encoding`** プロパティは、 DOM の `HTMLFormElement` オブジェクトの `enctype` 要素の別名です。

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

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

`HTMLFormElement` の **`elements`** プロパティは、 `HTMLFormControlsCollection` で `<form>` 要素に含まれているすべてのフォームコントロールを列挙して返します。

これとは別に、 `length` プロパティを使用してフォームコントロールの数だけを取得することができます。

返された集合の中の特定のフォームコントロールにアクセスするには、添字か要素の `name` または `id` 属性のいずれかを使用します。

HTML 5 より前のバージョンでは、返されるオブジェクトは `HTMLCollection` でした。 `HTMLFormControlsCollection` これに基づいています。

**メモ:** 同様に、指定された文書内のすべてのフォームの一覧を取得するには、その文書の `forms` プロパティを使用してください。

値
-

 フォームに含まれるすべての非画像コントロールが入った `HTMLFormControlsCollection` です。
 これは生きた集合です。フォームコントロールがフォームに追加されたりフォームから削除されたりすると、この集合はその変更を反映するために更新されます。

 返されたコレクション内のフォームコントロールは、ツリーの前順、深さ優先の順序に従うことで、フォームに現れるのと同じ順序になります。
 これは、**ツリー順**と呼ばれます。

以下の要素のみが返されます。

* `<button>`
* `<fieldset>`
* `<input>` （ただし、 `type` が `"image"` であるものは、過去の経緯から除外されています）。
* `<object>`
* `<output>`
* `<select>`
* `<textarea>`
例
-

### 構文の例

この例では、フォームコントロールの一覧を取得する方法と、添字と名前または ID でそのメンバーにアクセスする方法について説明します。


```html
<form id="my-form">
  <label>
    ユーザー名:
    <input type="text" name="username" />
  </label>
  <label>
    フルネーム:
    <input type="text" name="full-name" />
  </label>
  <label>
    パスワード:
    <input type="password" name="password" />
  </label>
</form>
```



```js
const inputs = document.getElementById("my-form").elements;
const inputByIndex = inputs[0];
const inputByName = inputs["username"];
```

### フォームコントロールへのアクセス

この例では、フォームの要素リストを取得し、そのリストを反復処理して、何らかの処理を行えるように `"text"` 型の `<input>` 要素を探すものです。


```js
const inputs = document.getElementById("my-form").elements;

// Iterate over the form controls
for (let i = 0; i < inputs.length; i++) {
  if (inputs[i].nodeName === "INPUT" && inputs[i].type === "text") {
    // Update text input
    inputs[i].value.toLocaleUpperCase();
  }
}
```

### フォームの無効化


```js
const inputs = document.getElementById("my-form").elements;

// Iterate over the form controls
for (let i = 0; i < inputs.length; i++) {
  // Disable all form controls
  inputs[i].setAttribute("disabled", "");
}
```

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-form-elements-dev |

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

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

**`submit`** イベントは `<form>` が送信されたときに発生します。

`submit` イベントは `<form>` 要素自身で発生するものであり、その中の `<button>` や <input type="submit"> で発生するものではないことに注意してください。しかし、フォームの送信が起動されたことを示すために送信される `SubmitEvent` には、送信リクエストがどのボタンで起動されたかを `submitter` プロパティが含まれています。

`submit` イベントは、ユーザーが送信ボタンを押したり、 `Enter` キーをフォーム内のフィールド（例えば <input type="text">）の編集中に押したりしたときに発生します。このイベントは `form.submit()` メソッドを呼び出した場合には送信されません。

**メモ:** フォームの検証に合格していないフォームを送信しようとすると、 `invalid` イベントが発生します。この場合、フォーム検証が送信を阻止しますので、 `submit` イベントは発生しません。

構文
--

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


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

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

イベント型
-----

`SubmitEvent` です。 `Event` を継承しています。

Event

SubmitEventイベントプロパティ
---------

*以下に列挙したプロパティに加えて、このインターフェイスは親インターフェイスである `Event` を継承しています。*

`submitter` 読取専用 

`HTMLElement` オブジェクトで、フォームの送信を起動するために関わったボタンやその他の要素を示します。

例
-

この例は `EventTarget.addEventListener()` を使用してフォームの送信を待受けし、実行されたときに現在の `Event.timeStamp` をログ出力し、それからフォームを送信する既定の動作を阻止します。

### HTML


```html
<form id="form">
  <label>Test field: <input type="text" /></label>
  <br /><br />
  <button type="submit">Submit form</button>
</form>
<p id="log"></p>
```

### JavaScript


```js
function logSubmit(event) {
  log.textContent = `Form Submitted! Timestamp: ${event.timeStamp}`;
  event.preventDefault();
}

const form = document.getElementById("form");
const log = document.getElementById("log");
form.addEventListener("submit", logSubmit);
```

### 結果

仕様書
---

| Specification |
| --- |
| HTML Standard # event-submit |
| HTML Standard # handler-onsubmit |

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

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

関連情報
----

* HTML の `<form>` 要素
* 関連イベント: `invalid`
HTMLFormElement: requestSubmit() メソッド
=====================================

`HTMLFormElement` の **`requestSubmit()`** メソッドは、特定の送信ボタンでフォームを送信することをリクエストします。

構文
--


```js
requestSubmit()
requestSubmit(submitter)
```

### 引数

`submitter` 省略可

このフォームのメンバーである送信ボタンです。

`submitter` が `form*` 属性を指定している場合、このフォームの送信動作を上書きします（`formmethod="POST"` など）。

`submitter` に `name` 属性があるか`<input type="image">` であった場合、フォームの送信時にそのデータが含まれます（`btnName=btnValue` など）。

`submitter` 引数を省略した場合、このフォーム要素自身が送信者として使用されます。

### 返値

なし (`undefined`)。

### 例外

`TypeError`

指定された `submitter` が送信ボタンでなかった場合に発生します。

`NotFoundError` `DOMException`

指定された `submitter` が、 `requestSubmit()` が呼び出されたフォームのメンバーでない場合に発生します。submitter は form 要素の子孫であるか、フォームを参照する `form` 属性を持たなければなりません。

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

 明らかな疑問は、なぜこのメソッドが存在するのかということです。
 `submit()` メソッドがあったのに、なぜこのメソッドが存在するのでしょうか？

答えは簡単です。`submit()` はフォームを送信しますが、それだけです。一方、`requestSubmit()` は、あたかも送信ボタンがクリックされたかのように動作します。フォームのコンテンツが検証され、検証が成功した場合にのみフォームが送信されます。フォームが送信されると、`submit` イベントがフォームオブジェクトに返送されます。

例
-

以下の例では、`requestSubmit()` が利用できる場合はそれを使用してリクエストの送信を試みることで、フォームを送信しています。 `main-submit` という ID の送信ボタンが得られた場合は、そのボタンを使用してフォームを送信します。そうでない場合は、 `submitter` 引数を指定せずに、フォーム自身から直接送信されます。

一方で、 `requestSubmit()` が利用できない場合、このコードは代わりにフォームの `submit()` メソッドを呼び出すことで送信を行います。


```js
let myForm = document.querySelector("form");
let submitButton = myForm.querySelector("#main-submit");

if (myForm.requestSubmit) {
  if (submitButton) {
    myForm.requestSubmit(submitButton);
  } else {
    myForm.requestSubmit();
  }
} else {
  myForm.submit();
}
```

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-form-requestsubmit-dev |

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

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

**`GamepadButton.value`** は `GamepadButton` インターフェイスのプロパティで、トリガーなど、現代の多くのゲームパッドにおけるアナログボタンの現在の状態を表すために使用する double 値を返します。

値は `0.0` - `1.0` の範囲で正規化され、`0.0` は押されていないボタン、`1.0` は完全に押されたボタンを表します。

例
-


```js
let gp = navigator.getGamepads()[0];

if (gp.buttons[0].value > 0) {
  // アナログボタンが押されたことに対する反応
}
```

値
-

A double.

仕様書
---

| Specification |
| --- |
| Gamepad # dom-gamepadbutton-value |

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

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

関連情報
----

ゲームパッド API の使用
GamepadButton: touched プロパティ
============================

**`touched`** は `GamepadButton` インターフェイスのプロパティで、タッチを検出できるボタンが現在タッチされているか (`true`) またはタッチされていないか (`false`) を示す論理値を返します。

ボタンがタッチを検出できないがアナログ値を返すことができる場合、プロパティは値が `0` より大きければ `true` となり、そうでなければ `false` となります。ボタンがタッチを検出できず、デジタル値しか返せない場合は、`GamepadButton.pressed` プロパティを反映します。

値
-

論理値 (`Boolean`) です。タッチされていれば true です。

例
-


```js
let gp = navigator.getGamepads()[0]; // 最初のゲームパッドオブジェクトを取得

if (gp.buttons[0].touched) {
  // タッチされているボタンに応答
}
```

仕様書
---

| Specification |
| --- |
| Gamepad # dom-gamepadbutton-touched |

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

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

関連情報
----

* ゲームパッド API の使用
GamepadButton: pressed プロパティ
============================

**`GamepadButton.pressed`** は `GamepadButton` インターフェイスのプロパティで、現在ボタンが押されている (`true`) か、押されていない (`false`) かを示す論理値を返します。

例
-


```js
let gp = navigator.getGamepads()[0]; // 最初のゲームパッドオブジェクトを取得

if (gp.buttons[0].pressed) {
  // 押されているボタンに反応
}
```

値
-

論理値です。

仕様書
---

| Specification |
| --- |
| Gamepad # dom-gamepadbutton-pressed |

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

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

関連情報
----

* ゲームパッド API の使用
FileReaderSync: readAsBinaryString() メソッド
=========================================

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

**メモ:** このメソッドは非推奨であり、 `readAsArrayBuffer()` に取って代わられました。

`readAsBinaryString()` は `FileReaderSync` インターフェイスのメソッドで、 `File` または `Blob` オブジェクトを同期的に文字列に読み込むことを可能にします。このインターフェイスは、ブロックが発生する可能性のある同期 I/O を可能にするため、ワーカーでのみ利用可能です。

構文
--


```js
readAsBinaryString(File)
readAsBinaryString(Blob)
```

### 引数

`blob`

読み取る `File` または `Blob` です。

### 返値

入力データを表す文字列です。

例外
--

`NotFoundError` `DOMException`

DOM の `File` または `Blob` で表されるリソースが、消去されたなどの理由で見つからない場合に発生します。

`SecurityError` `DOMException`

以下の問題のある状況のいずれかが検出された場合に発生します。

* リソースが第三者によって変更されている
* 同時に行われる読み取りが多すぎる
* リソースが指しているファイルがウェブから利用するには安全ではない（システムファイルなど）

`NotReadableError` `DOMException`

同時実行ロックなどの権限の問題でリソースを読み込めない場合に発生します。

`EncodingError` `DOMException`

リソースがデータ URL であり、ブラウザーごとに定義された制限長を超えた場合に発生します。

仕様書
---

| Specification |
| --- |
| File API # readAsBinaryStringSyncSection |

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

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

関連情報
----

* ファイル API
* `File`
* `FileReaderSync`
* `FileReader`
* `Blob`
FileReaderSync: readAsText() メソッド
=================================

`readAsText()` は `FileReaderSync` インターフェイスのメソッドで、`File` または `Blob` オブジェクトを同期的に文字列に読み込むことができます。このインターフェイスは、ブロックが発生する可能性のある同期 I/O を可能にするため、ワーカーでのみ利用可能です。

構文
--


```js
readAsText(File)
readAsText(Blob)
readAsText(File, encoding)
readAsText(Blob, encoding)
```

### 引数

`blob`

読み込み対象の DOM `File` または `Blob`。

`encoding`

オプションの引数で、使用するエンコーディングを指定します（`iso-8859-1` や `UTF-8` など）。存在しない場合、このメソッドは検出アルゴリズムを適用します。

### 返値

入力データを表す文字列です。

例外
--

このメソッドでは以下の例外が発生する可能性があります。

`NotFoundError` `DOMException`

DOM の `File` または `Blob` で表されるリソースが、消去されたなどの理由で見つからない場合に発生します。

`SecurityError` `DOMException`

以下の問題のある状況のいずれかが検出された場合に発生します。

* リソースが第三者によって変更されている
* 同時に行われる読み取りが多すぎる
* リソースが指しているファイルがウェブから利用するには安全ではない（システムファイルなど）

`NotReadableError` `DOMException`

同時実行ロックなどの権限の問題でリソースを読み込めない場合に発生します。

`EncodingError` `DOMException`

リソースがデータ URL であり、ブラウザーごとに定義された制限長を超えた場合に発生します。

仕様書
---

| Specification |
| --- |
| File API # readAsTextSync |

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

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

関連情報
----

* ファイル API
* `File`
* `FileReaderSync`
* `FileReader`
* `Blob`
FileReaderSync: readAsDataURL() メソッド
====================================

`readAsDataURL()` は `FileReaderSync` インターフェイスのメソッドで、`File` または `Blob` オブジェクトを同期的にデータ URL を表す文字列に読み込むことができます。このインターフェイスは、ブロックが発生する可能性のある同期 I/O を可能にするため、ワーカーでのみ利用可能です。

構文
--


```js
readAsDataURL(File)
readAsDataURL(Blob)
```

### 引数

`blob`

読み込み対象の `File` または `Blob` です。

### 返値

入力データをデータ URL として表す文字列です。

例外
--

このメソッドでは以下の例外が発生する可能性があります。

`NotFoundError` `DOMException`

DOM の `File` または `Blob` で表されるリソースが、消去されたなどの理由で見つからない場合に発生します。

`SecurityError` `DOMException`

以下の問題のある状況のいずれかが検出された場合に発生します。

* リソースが第三者によって変更されている
* 同時に行われる読み取りが多すぎる
* リソースが指しているファイルがウェブから利用するには安全ではない（システムファイルなど）

`NotReadableError` `DOMException`

同時実行ロックなどの権限の問題でリソースを読み込めない場合に発生します。

`EncodingError` `DOMException`

リソースがデータ URL であり、ブラウザーごとに定義された制限長を超えた場合に発生します。

仕様書
---

| Specification |
| --- |
| File API # readAsDataURLSync-section |

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

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

関連情報
----

* ファイルとディレクトリー項目 API
* `File`
* `FileReaderSync`
* `FileReader`
* `Blob`
FileReaderSync: FileReaderSync() コンストラクター
=========================================

**`FileReaderSync()`** コンストラクターは、新しい `FileReaderSync` を作成します。

構文
--


```js
new FileReaderSync()
```

### 引数

なし。

例
-

次のコードは、`FileReaderSync` オブジェクトをコンストラクター `FileReaderSync()` を用いて生成し、続いてオブジェクトを使用する様子を示します。


```js
function readFile(blob) {
  const reader = new FileReaderSync();
  postMessage(reader.readAsDataURL(blob));
}
```


> 
> **Note:** このスニペットは `Worker` の中で使用しなければなりません。同期インターフェイスはメインスレッドでは使用することができないからです。
> 
> 
> 

仕様書
---

| Specification |
| --- |
| File API # filereadersyncConstrctr |

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

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

`readAsArrayBuffer()` は `FileReaderSync` インターフェイスのメソッドで、`File` または `Blob` オブジェクトを同期的に `ArrayBuffer` に読み込むことができます。このインターフェイスは、ブロックが発生する可能性のある同期 I/O を可能にするため、ワーカーでのみ利用可能です。

構文
--


```js
readAsArrayBuffer(blob)
```

### 引数

`blob`

`File` または `Blob` で、`File` または `ArrayBuffer` に読み込むためのものです。

### 返値

ファイルのデータを表す `ArrayBuffer` です。

例外
--

このメソッドでは以下の例外が発生する可能性があります。

`NotFoundError` `DOMException`

DOM の `File` または `Blob` で表されるリソースが、消去されたなどの理由で見つからない場合に発生します。

`SecurityError` `DOMException`

以下の問題のある状況のいずれかが検出された場合に発生します。

* リソースが第三者によって変更されている
* 同時に行われる読み取りが多すぎる
* リソースが指しているファイルがウェブから利用するには安全ではない（システムファイルなど）

`NotReadableError` `DOMException`

同時実行ロックなどの権限の問題でリソースを読み込めない場合に発生します。

`EncodingError` `DOMException`

リソースがデータ URL であり、ブラウザーごとに定義された制限長を超えた場合に発生します。

仕様書
---

| Specification |
| --- |
| File API # readAsArrayBufferSyncSection |

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

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

関連情報
----

* ファイル API
* `File`
* `FileReaderSync`
* `FileReader`
* `Blob`
MediaStreamTrackAudioSourceNode: MediaStreamTrackAudioSourceNode() コンストラクター
===========================================================================

Web Audio API の **`MediaStreamTrackAudioSourceNode()`** コンストラクターは、オプションオブジェクトで指定された `MediaStreamTrack` から音声を取得する新しい `MediaStreamTrackAudioSourceNode` オブジェクトを生成して返します。

`MediaStreamTrackAudioSourceNode` を生成する別の方法は、音声の取得元とする `MediaStreamTrack` を指定して `AudioContext.createMediaStreamTrackSource()` メソッドを呼び出すことです。

構文
--


```js
new MediaStreamTrackAudioSourceNode(context, options)
```

### 引数

`context`

このノードを関連付ける音声コンテキストを表す `AudioContext` です。

`options`

`MediaStreamTrackAudioSourceNode` に持たせる性質を定義するオブジェクトです。

`mediaStreamTrack`

このノードの出力とする音声のデータの取得元とする `MediaStreamTrack` です。


### 返値

メディアを指定のメディアトラックから取得する音声ノードを表す新しい `MediaStreamTrackAudioSourceNode` オブジェクトです。

### 例外

`NotSupportedError` `DOMException`

指定の `context` が `AudioContext` でないとき投げられます。

`InvalidStateError` `DOMException`

指定の `MediaStreamTrack` が音声トラックでない (すなわち、`kind` プロパティが `audio` でない) とき投げられます。

例
-

この例では、`getUserMedia()` を用いてユーザーのカメラにアクセスし、そのデバイスが提供する最初の音声トラックから新しい `MediaStreamAudioSourceNode` を生成します。


```js
const audioCtx = new AudioContext();

if (navigator.mediaDevices.getUserMedia) {
  navigator.mediaDevices
    .getUserMedia({
      audio: true,
      video: false,
    })
    .then((stream) => {
      const options = {
        mediaStreamTrack: stream.getAudioTracks()[0],
      };

      const source = new MediaStreamTrackAudioSourceNode(audioCtx, options);
      source.connect(audioCtx.destination);
    })
    .catch((err) => {
      console.error(`以下の gUM エラーが発生しました: ${err}`);
    });
} else {
  console.log("このブラウザーは新しい getUserMedia に対応していません！");
}
```

仕様書
---

| Specification |
| --- |
| Web Audio API # dom-mediastreamtrackaudiosourcenode-mediastreamtrackaudiosourcenode |

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

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