diff --git a/files/ja/web/api/abortsignal/index.html b/files/ja/web/api/abortsignal/index.html deleted file mode 100644 index d363ae273b98a6..00000000000000 --- a/files/ja/web/api/abortsignal/index.html +++ /dev/null @@ -1,106 +0,0 @@ ---- -title: AbortSignal -slug: Web/API/AbortSignal -tags: - - API - - AbortSignal - - DOM - - インターフェース - - リファレンス - - 実験的 -translation_of: Web/API/AbortSignal ---- -

{{APIRef("DOM")}}{{SeeCompatTable}}

- -

AbortSignal インターフェイスは DOM 要求 (Fetch など) と通信し、必要に応じて {{domxref("AbortController")}} オブジェクトを介して中断することを可能にするシグナルオブジェクトを表します。

- -

プロパティ

- -

AbortSignal インターフェイスはまた、親のインターフェースである、 {{domxref("EventTarget")}} からプロパティを継承しています。

- -
-
{{domxref("AbortSignal.aborted")}} {{readonlyInline}}
-
シグナルが通信しているリクエスト(複数回も)が中断しているかを示す {{domxref("Boolean")}} で、(true) が中断している 、(false) は中断していないを表します。
-
- -

イベント

- -

addEventListener() を使うかこのインターフェースの oneventname プロパティにイベントリスナーを割り当てることでこのイベントへのアクセスに待機します。

- -
-
abort
-
シグナルが通信している DOM リクエスト (複数回も) の中断を呼び出す。
- また onabort プロパティを介して利用可能です。
-
- -

メソッド

- -

AbortSignal インターフェースは親インタフェースである、{{domxref("EventTarget")}} からメソッドを継承します。

- -

- -

この後の短いコードで、Fetch API を使用してビデオをダウンロードします。

- -

まず {{domxref("AbortController.AbortController","AbortController()")}} コンストラクターを使ってコントローラーを生成し、{{domxref("AbortController.signal")}} プロパティを使用して関連する {{domxref("AbortSignal")}} オブジェクトへの参照を取得します。

- -

読み込みリクエスト が初期化すると、リクエストのオプションオブジェクト (下記 {signal} を参照) の内部のオプションとして AbortSignal を渡します。これによりシグナルと読み込みリクエストのコントローラーは関連付き、{{domxref("AbortController.abort()")}} を呼び出すことで下記の 2 つ目のイベントリスナーに見られるように中断が許可されます。

- -
var controller = new AbortController();
-var signal = controller.signal;
-
-var downloadBtn = document.querySelector('.download');
-var abortBtn = document.querySelector('.abort');
-
-downloadBtn.addEventListener('click', fetchVideo);
-
-abortBtn.addEventListener('click', function() {
-  controller.abort();
-  console.log('Download aborted');
-});
-
-function fetchVideo() {
-  ...
-  fetch(url, {signal}).then(function(response) {
-    ...
-  }).catch(function(e) {
-    reports.textContent = 'Download error: ' + e.message;
-  })
-}
- -
-

注記: abort() が呼ばれると、fetch() promise は AbortError で失敗します。

-
- -
-

現在のバージョンの Firefox は、DOMException で失敗します。

-
- -

GitHub で完全に動作する例を見ることができます — abort-api (または 実際に動作する様子 を参照) を参照してください。

- -

仕様

- - - - - - - - - - - - - - -
仕様書ステータスコメント
{{SpecName('DOM WHATWG', '#interface-AbortSignal', 'AbortSignal')}}{{Spec2('DOM WHATWG')}}初回定義
- -

ブラウザの実装状況

- -

{{Compat("api.AbortSignal")}}

- -

関連情報

- - diff --git a/files/ja/web/api/abortsignal/index.md b/files/ja/web/api/abortsignal/index.md new file mode 100644 index 00000000000000..345bca7cab627f --- /dev/null +++ b/files/ja/web/api/abortsignal/index.md @@ -0,0 +1,87 @@ +--- +title: AbortSignal +slug: Web/API/AbortSignal +tags: + - API + - AbortSignal + - DOM + - インターフェース + - リファレンス + - 実験的 +translation_of: Web/API/AbortSignal +--- +{{APIRef("DOM")}}{{SeeCompatTable}} + +**`AbortSignal`** インターフェイスは DOM 要求 (Fetch など) と通信し、必要に応じて {{domxref("AbortController")}} オブジェクトを介して中断することを可能にするシグナルオブジェクトを表します。 + +## プロパティ + +_AbortSignal インターフェイスはまた、親のインターフェースである、 {{domxref("EventTarget")}} からプロパティを継承しています。_ + +- {{domxref("AbortSignal.aborted")}} {{readonlyInline}} + - : シグナルが通信しているリクエスト(複数回も)が中断しているかを示す {{domxref("Boolean")}} で、(`true`) が中断している 、(`false`) は中断していないを表します。 + +## イベント + +[`addEventListener()`](/ja/docs/Web/API/EventTarget/addEventListener) を使うかこのインターフェースの `oneventname` プロパティにイベントリスナーを割り当てることでこのイベントへのアクセスに待機します。 + +- [`abort`](/ja/docs/Web/API/AbortSignal/abort_event) + - : シグナルが通信している DOM リクエスト (複数回も) の中断を呼び出す。 + また [`onabort`](/ja/docs/Web/API/AbortSignal/onabort) プロパティを介して利用可能です。 + +## メソッド + +_AbortSignal インターフェースは親インタフェースである、{{domxref("EventTarget")}} からメソッドを継承します。_ + +## 例 + +この後の短いコードで、[Fetch API](/ja/docs/Web/API/Fetch_API) を使用してビデオをダウンロードします。 + +まず {{domxref("AbortController.AbortController","AbortController()")}} コンストラクターを使ってコントローラーを生成し、{{domxref("AbortController.signal")}} プロパティを使用して関連する {{domxref("AbortSignal")}} オブジェクトへの参照を取得します。 + +[読み込みリクエスト](/ja/docs/Web/API/WindowOrWorkerGlobalScope/fetch) が初期化すると、リクエストのオプションオブジェクト (下記 `{signal}` を参照) の内部のオプションとして `AbortSignal` を渡します。これによりシグナルと読み込みリクエストのコントローラーは関連付き、{{domxref("AbortController.abort()")}} を呼び出すことで下記の 2 つ目のイベントリスナーに見られるように中断が許可されます。 + +```js +var controller = new AbortController(); +var signal = controller.signal; + +var downloadBtn = document.querySelector('.download'); +var abortBtn = document.querySelector('.abort'); + +downloadBtn.addEventListener('click', fetchVideo); + +abortBtn.addEventListener('click', function() { + controller.abort(); + console.log('Download aborted'); +}); + +function fetchVideo() { + ... + fetch(url, {signal}).then(function(response) { + ... + }).catch(function(e) { + reports.textContent = 'Download error: ' + e.message; + }) +} +``` + +> **Note:** **注記**: `abort()` が呼ばれると、`fetch()` promise は `AbortError` で失敗します。 + +> **Warning:** 現在のバージョンの Firefox は、`DOMException` で失敗します。 + +GitHub で完全に動作する例を見ることができます — [abort-api](https://github.com/mdn/dom-examples/tree/master/abort-api) (または [実際に動作する様子](https://mdn.github.io/dom-examples/abort-api/) を参照) を参照してください。 + +## 仕様 + +| 仕様書 | ステータス | コメント | +| ---------------------------------------------------------------------------------------- | -------------------------------- | -------- | +| {{SpecName('DOM WHATWG', '#interface-AbortSignal', 'AbortSignal')}} | {{Spec2('DOM WHATWG')}} | 初回定義 | + +## ブラウザの実装状況 + +{{Compat("api.AbortSignal")}} + +## 関連情報 + +- [Fetch API](/ja/docs/Web/API/Fetch_API) +- Jake Archibald による [Abortable Fetch](https://developers.google.com/web/updates/2017/09/abortable-fetch) diff --git a/files/ja/web/api/analysernode/index.html b/files/ja/web/api/analysernode/index.html deleted file mode 100644 index 83841fa29b9c0d..00000000000000 --- a/files/ja/web/api/analysernode/index.html +++ /dev/null @@ -1,175 +0,0 @@ ---- -title: AnalyserNode -slug: Web/API/AnalyserNode -translation_of: Web/API/AnalyserNode ---- -

{{APIRef("Web Audio API")}}

- -

AnalyserNodeインタフェースはリアルタイム時間領域/周波数領域分析情報を表現します。{{domxref("AudioNode")}}は、入力から出力の流れにおいてaudio streamそのものは変えず、データ加工や音声の可視化をすることができます。

- -

1つのAnalyzerNodeは必ず1つの入力と出力を持ちます。出力先がなくてもAnalyzerNodeは問題ありません。

- -

Without modifying the audio stream, the node allows to get the frequency and time-domain data associated to it, using a FFT.

- - - - - - - - - - - - - - - - - - - - - - - - -
Number of inputs1
Number of outputs1 (but may be left unconnected)
Channel count mode"explicit"
Channel count1
Channel interpretation"speakers"
- -

Inheritance

- -

このインタフェースは以下のインタフェースと継承関係にあります。:

- -

{{InheritanceDiagram}}

- -

Properties

- -

以下は、{{domxref("AudioNode")}}からプロパティを継承する.

- -
-
{{domxref("AnalyserNode.fftSize")}}
-
-

符号なしのlong型の値でFFT(高速フーリエ変換)において周波数領域を決定するために使われているサイズを表している。

-
-
{{domxref("AnalyserNode.frequencyBinCount")}} {{readonlyInline}}
-
符号なしのlong型でFFT(高速フーリエ変換)のサイズの半分の値。一般的に音声再生時の可視化に用いられる。
-
{{domxref("AnalyserNode.minDecibels")}}
-
-

unsigned byte型値へ変換するFFT分析データのスケーリング時の最小のパワー値を表すdouble型の値である。一般的に、この値は、getByteFrequencyData()の使用時の結果の範囲の最小値として明記される。

-
-
{{domxref("AnalyserNode.maxDecibels")}}
-
-

unsigned byte型値へ変換するFFT分析データのスケーリング時の最大のパワー値を表すdouble型の値である。一般的に、この値は、getByteFrequencyData()の使用時の結果の範囲の最大値として明記される。

-
-
{{domxref("AnalyserNode.smoothingTimeConstant")}}
-
分析フレームの平均間隔を表すdouble型の値で、使用例として時間的にスペクトルを平滑化させるのに用いられる。
-
- -

Methods

- -

{{domxref("AudioNode")}}からメソッドを継承する.

- -
-
{{domxref("AnalyserNode.getFloatFrequencyData()")}}
-
周波数データを引数として渡されたFloat32Array配列へコピーする。
-
- -
-
{{domxref("AnalyserNode.getByteFrequencyData()")}}
-
周波数データを引数として渡されたUint8Array配列(unsigned byte配列)へコピーする。
-
- -
-
{{domxref("AnalyserNode.getFloatTimeDomainData()")}}
-
音声波形データを引数として渡されたFloat32Array配列へコピーする。
-
{{domxref("AnalyserNode.getByteTimeDomainData()")}}
-
音声波形データを引数として渡されたUint8Array配列(unsigned byte配列)へコピーする。
-
- -

Examples

- -
-

Note: オーディオヴィジュアライゼーションのためのWeb Audio APIを使ったヴィジュアライゼーションガイドを御覧ください。

-
- -

Basic usage

- -

以下の例では、AudioContextから1つのAnalyserNodeを作成しており、requestAnimationFrameと<canvas>へ繰り返し時間波形データを繰り返し集め現入力を“オシロスコープスタイル”で出力し描画している。

- -

より多くのサンプルは 我々の Voice-change-O-matic デモにご覧頂けます。 (see app.js lines 128–205 for relevant code).

- -
var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
-var analyser = audioCtx.createAnalyser();
-
-  ...
-
-analyser.fftSize = 2048;
-var bufferLength = analyser.frequencyBinCount;
-var dataArray = new Uint8Array(bufferLength);
-analyser.getByteTimeDomainData(dataArray);
-
-// draw an oscilloscope of the current audio source
-
-function draw() {
-
-      drawVisual = requestAnimationFrame(draw);
-
-      analyser.getByteTimeDomainData(dataArray);
-
-      canvasCtx.fillStyle = 'rgb(200, 200, 200)';
-      canvasCtx.fillRect(0, 0, WIDTH, HEIGHT);
-
-      canvasCtx.lineWidth = 2;
-      canvasCtx.strokeStyle = 'rgb(0, 0, 0)';
-
-      canvasCtx.beginPath();
-
-      var sliceWidth = WIDTH * 1.0 / bufferLength;
-      var x = 0;
-
-      for(var i = 0; i < bufferLength; i++) {
-
-        var v = dataArray[i] / 128.0;
-        var y = v * HEIGHT/2;
-
-        if(i === 0) {
-          canvasCtx.moveTo(x, y);
-        } else {
-          canvasCtx.lineTo(x, y);
-        }
-
-        x += sliceWidth;
-      }
-
-      canvasCtx.lineTo(canvas.width, canvas.height/2);
-      canvasCtx.stroke();
-    };
-
-    draw();
- -

Specifications

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('Web Audio API', '#the-analysernode-interface', 'AnalyserNode')}}{{Spec2('Web Audio API')}}
- -

Browser compatibility

- -

{{Compat("api.AnalyserNode")}}

- -

See also

- - diff --git a/files/ja/web/api/analysernode/index.md b/files/ja/web/api/analysernode/index.md new file mode 100644 index 00000000000000..6f22ece72d2130 --- /dev/null +++ b/files/ja/web/api/analysernode/index.md @@ -0,0 +1,134 @@ +--- +title: AnalyserNode +slug: Web/API/AnalyserNode +translation_of: Web/API/AnalyserNode +--- +{{APIRef("Web Audio API")}} + +**`AnalyserNode`**インタフェースはリアルタイム時間領域/周波数領域分析情報を表現します。{{domxref("AudioNode")}}は、入力から出力の流れにおいて audio stream そのものは変えず、データ加工や音声の可視化をすることができます。 + +1つの`AnalyzerNode`は必ず1つの入力と出力を持ちます。出力先がなくても AnalyzerNode は問題ありません。 + +![Without modifying the audio stream, the node allows to get the frequency and time-domain data associated to it, using a FFT.](https://mdn.mozillademos.org/files/9707/WebAudioFFT.png) + +| Number of inputs | `1` | +| ---------------------- | --------------------------------- | +| Number of outputs | `1` (but may be left unconnected) | +| Channel count mode | `"explicit"` | +| Channel count | `1` | +| Channel interpretation | `"speakers"` | + +## Inheritance + +このインタフェースは以下のインタフェースと継承関係にあります。: + +{{InheritanceDiagram}} + +## Properties + +_以下は、\_\_{{domxref("AudioNode")}}からプロパティを継承する_. + +- {{domxref("AnalyserNode.fftSize")}} + - : 符号なしの long 型の値で FFT([高速フーリエ変換](http://en.wikipedia.org/wiki/Fast_Fourier_transform))において周波数領域を決定するために使われているサイズを表している。 +- {{domxref("AnalyserNode.frequencyBinCount")}} {{readonlyInline}} + - : 符号なしの long 型で FFT(高速フーリエ変換)のサイズの半分の値。一般的に音声再生時の可視化に用いられる。 +- {{domxref("AnalyserNode.minDecibels")}} + - : unsigned byte 型値へ変換する FFT 分析データのスケーリング時の最小のパワー値を表す double 型の値である。一般的に、この値は、getByteFrequencyData()の使用時の結果の範囲の最小値として明記される。 +- {{domxref("AnalyserNode.maxDecibels")}} + - : unsigned byte 型値へ変換する FFT 分析データのスケーリング時の最大のパワー値を表す double 型の値である。一般的に、この値は、getByteFrequencyData()の使用時の結果の範囲の最大値として明記される。 +- {{domxref("AnalyserNode.smoothingTimeConstant")}} + - : 分析フレームの平均間隔を表す double 型の値で、使用例として時間的にスペクトルを平滑化させるのに用いられる。 + +## Methods + +_{{domxref("AudioNode")}}からメソッドを継承する_. + +- {{domxref("AnalyserNode.getFloatFrequencyData()")}} + - : 周波数データを引数として渡された Float32Array 配列へコピーする。 + + + +- {{domxref("AnalyserNode.getByteFrequencyData()")}} + - : 周波数データを引数として渡された Uint8Array 配列(unsigned byte 配列)へコピーする。 + + + +- {{domxref("AnalyserNode.getFloatTimeDomainData()")}} + - : 音声波形データを引数として渡された Float32Array 配列へコピーする。 +- {{domxref("AnalyserNode.getByteTimeDomainData()")}} + - : 音声波形データを引数として渡された Uint8Array 配列(unsigned byte 配列)へコピーする。 + +## Examples + +> **Note:** オーディオヴィジュアライゼーションのための Web Audio API を使ったヴィジュアライゼーションガイドを御覧ください。 + +### Basic usage + +以下の例では、AudioContext から1つの AnalyserNode を作成しており、requestAnimationFrame と\へ繰り返し時間波形データを繰り返し集め現入力を“オシロスコープスタイル”で出力し描画している。 + +より多くのサンプルは 我々の [Voice-change-O-matic](http://mdn.github.io/voice-change-o-matic/) デモにご覧頂けます。 (see [app.js lines 128–205](https://github.com/mdn/voice-change-o-matic/blob/gh-pages/scripts/app.js#L128-L205) for relevant code). + +```js +var audioCtx = new (window.AudioContext || window.webkitAudioContext)(); +var analyser = audioCtx.createAnalyser(); + + ... + +analyser.fftSize = 2048; +var bufferLength = analyser.frequencyBinCount; +var dataArray = new Uint8Array(bufferLength); +analyser.getByteTimeDomainData(dataArray); + +// draw an oscilloscope of the current audio source + +function draw() { + + drawVisual = requestAnimationFrame(draw); + + analyser.getByteTimeDomainData(dataArray); + + canvasCtx.fillStyle = 'rgb(200, 200, 200)'; + canvasCtx.fillRect(0, 0, WIDTH, HEIGHT); + + canvasCtx.lineWidth = 2; + canvasCtx.strokeStyle = 'rgb(0, 0, 0)'; + + canvasCtx.beginPath(); + + var sliceWidth = WIDTH * 1.0 / bufferLength; + var x = 0; + + for(var i = 0; i < bufferLength; i++) { + + var v = dataArray[i] / 128.0; + var y = v * HEIGHT/2; + + if(i === 0) { + canvasCtx.moveTo(x, y); + } else { + canvasCtx.lineTo(x, y); + } + + x += sliceWidth; + } + + canvasCtx.lineTo(canvas.width, canvas.height/2); + canvasCtx.stroke(); + }; + + draw(); +``` + +## Specifications + +| Specification | Status | Comment | +| ---------------------------------------------------------------------------------------------------- | ------------------------------------ | ------- | +| {{SpecName('Web Audio API', '#the-analysernode-interface', 'AnalyserNode')}} | {{Spec2('Web Audio API')}} | | + +## Browser compatibility + +{{Compat("api.AnalyserNode")}} + +## See also + +- [Using the Web Audio API](/ja/docs/Web_Audio_API/Using_Web_Audio_API) diff --git a/files/ja/web/api/animationevent/elapsedtime/index.html b/files/ja/web/api/animationevent/elapsedtime/index.html deleted file mode 100644 index 397c8652e8b9aa..00000000000000 --- a/files/ja/web/api/animationevent/elapsedtime/index.html +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: AnimationEvent.elapsedTime -slug: Web/API/AnimationEvent/elapsedTime -tags: - - API - - AnimationEvent - - CSSOM - - Experimental - - Property - - Reference - - Web Animations - - プロパティ -translation_of: Web/API/AnimationEvent/elapsedTime ---- -
{{SeeCompatTable}}{{ apiref("Web Animations API") }}
- -

AnimationEvent.elapsedTime は読み取り専用のプロパティで、アニメーションが開始されてからの秒数を float 型で表します。このイベントが発生したとき、アニメーションが停止した場合を除いて常に設定されます。 {{domxref("HTMLElement/animationstart_event", "animationstart")}} イベントにおいては elapsedTime0.0 になりますが、 {{cssxref("animation-delay")}} が負の値の場合は、このイベントは elapsedTime(-1 * 待ち時間) であるときに発生します。.

- -

構文

- -
time = AnimationEvent.elapsedTime
- -

仕様書

- - - - - - - - - - - - - - - - -
仕様書状態備考
{{ SpecName('CSS3 Animations', '#dom-animationevent-elapsedtime', 'AnimationEvent.elapsedTime') }}{{ Spec2('CSS3 Animations')}}初回定義
- -

ブラウザーの互換性

- -

{{Compat("api.AnimationEvent.elapsedTime")}}

- -

関連情報

- - diff --git a/files/ja/web/api/animationevent/elapsedtime/index.md b/files/ja/web/api/animationevent/elapsedtime/index.md new file mode 100644 index 00000000000000..1025c2b23e1818 --- /dev/null +++ b/files/ja/web/api/animationevent/elapsedtime/index.md @@ -0,0 +1,37 @@ +--- +title: AnimationEvent.elapsedTime +slug: Web/API/AnimationEvent/elapsedTime +tags: + - API + - AnimationEvent + - CSSOM + - Experimental + - Property + - Reference + - Web Animations + - プロパティ +translation_of: Web/API/AnimationEvent/elapsedTime +--- +{{SeeCompatTable}}{{ apiref("Web Animations API") }} + +**`AnimationEvent.elapsedTime`** は読み取り専用のプロパティで、アニメーションが開始されてからの秒数を `float` 型で表します。このイベントが発生したとき、アニメーションが停止した場合を除いて常に設定されます。 {{domxref("HTMLElement/animationstart_event", "animationstart")}} イベントにおいては `elapsedTime` は `0.0` になりますが、 {{cssxref("animation-delay")}} が負の値の場合は、このイベントは `elapsedTime` が `(-1 * `_待ち時間_`)` であるときに発生します。. + +## 構文 + + time = AnimationEvent.elapsedTime + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| ------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------- | -------- | +| {{ SpecName('CSS3 Animations', '#dom-animationevent-elapsedtime', 'AnimationEvent.elapsedTime') }} | {{ Spec2('CSS3 Animations')}} | 初回定義 | + +## ブラウザーの互換性 + +{{Compat("api.AnimationEvent.elapsedTime")}} + +## 関連情報 + +- [CSS アニメーションの使用](/ja/docs/Web/CSS/CSS_Animations/Using_CSS_animations) +- アニメーションに関する CSS プロパティと @ 規則: {{cssxref("animation")}}, {{cssxref("animation-delay")}}, {{cssxref("animation-direction")}}, {{cssxref("animation-duration")}}, {{cssxref("animation-fill-mode")}}, {{cssxref("animation-iteration-count")}}, {{cssxref("animation-name")}}, {{cssxref("animation-play-state")}}, {{cssxref("animation-timing-function")}}, {{cssxref("@keyframes")}}. +- 所属先の {{domxref("AnimationEvent")}} インターフェイス diff --git a/files/ja/web/api/animationevent/index.html b/files/ja/web/api/animationevent/index.html deleted file mode 100644 index 4db188602d8a32..00000000000000 --- a/files/ja/web/api/animationevent/index.html +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: AnimationEvent -slug: Web/API/AnimationEvent -tags: - - API - - CSS アニメーション - - Experimental - - Interface - - Reference - - Web Animations - - インターフェイス -translation_of: Web/API/AnimationEvent ---- -
{{SeeCompatTable}}{{APIRef("Web Animations API")}}
- -

AnimationEvent インターフェイスは、アニメーションに関する情報を提供するイベントを表します。

- -

{{InheritanceDiagram}}

- -

コンストラクター

- -
-
{{domxref("AnimationEvent.AnimationEvent", "AnimationEvent()")}}
-
指定された引数で AnimationEvent イベントを生成します。
-
- -

プロパティ

- -

親の {{domxref("Event")}} から継承されるプロパティもあります

- -
-
{{domxref("AnimationEvent.animationName")}} {{readonlyInline}}
-
{{domxref("DOMString")}} で、この変化に関連付けられた {{cssxref("animation-name")}} CSS プロパティの値を含みます。
-
{{domxref("AnimationEvent.elapsedTime")}} {{readonlyInline}}
-
float 値で、アニメーションが実行された時間の長さを秒単位で表し、イベントが発生したときは、アニメーションが停止していた時間は除外されます。 animationstart イベントでは、 elapsedTime は、ふつう 0.0 となりますが、 {{cssxref("animation-delay")}} が負の値であった場合は例外で、この場合はイベントは elapsedTime(-1 * delay) が入った状態でイベントが発生します。
-
{{domxref("AnimationEvent.pseudoElement")}} {{readonlyInline}}
-
{{domxref("DOMString")}} で、 '::' で始まり、アニメーションが実行される 疑似要素 の名前が入ります。このアニメーションが疑似要素ではなく要素で実行されている場合は、空文字列 '' になります。
-
- -

メソッド

- -

親の {{domxref("Event")}} から継承されるメソッドもあります

- -
-
{{domxref("AnimationEvent.initAnimationEvent()")}} {{non-standard_inline}}{{deprecated_inline}}
-
非推奨の {{domxref("Document.createEvent()", "Document.createEvent(\"AnimationEvent\")")}} メソッドを使用して作成された AnimationEvent を初期化します。
-
- -

仕様書

- - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName("CSS3 Animations", "#interface-animationevent", "AnimationEvent")}}{{Spec2("CSS3 Animations")}}初回定義
- -

ブラウザーの対応

- -

{{Compat("api.AnimationEvent")}}

- -

関連情報

- - diff --git a/files/ja/web/api/animationevent/index.md b/files/ja/web/api/animationevent/index.md new file mode 100644 index 00000000000000..313ee7aa6c177d --- /dev/null +++ b/files/ja/web/api/animationevent/index.md @@ -0,0 +1,56 @@ +--- +title: AnimationEvent +slug: Web/API/AnimationEvent +tags: + - API + - CSS アニメーション + - Experimental + - Interface + - Reference + - Web Animations + - インターフェイス +translation_of: Web/API/AnimationEvent +--- +{{SeeCompatTable}}{{APIRef("Web Animations API")}} + +**`AnimationEvent`** インターフェイスは、[アニメーション](/ja/docs/Web/CSS/CSS_Animations/Using_CSS_animations)に関する情報を提供するイベントを表します。 + +{{InheritanceDiagram}} + +## コンストラクター + +- {{domxref("AnimationEvent.AnimationEvent", "AnimationEvent()")}} + - : 指定された引数で `AnimationEvent` イベントを生成します。 + +## プロパティ + +_親の {{domxref("Event")}} から継承されるプロパティもあります_。 + +- {{domxref("AnimationEvent.animationName")}} {{readonlyInline}} + - : {{domxref("DOMString")}} で、この変化に関連付けられた {{cssxref("animation-name")}} CSS プロパティの値を含みます。 +- {{domxref("AnimationEvent.elapsedTime")}} {{readonlyInline}} + - : `float` 値で、アニメーションが実行された時間の長さを秒単位で表し、イベントが発生したときは、アニメーションが停止していた時間は除外されます。 `animationstart` イベントでは、 `elapsedTime` は、ふつう `0.0` となりますが、 {{cssxref("animation-delay")}} が負の値であった場合は例外で、この場合はイベントは `elapsedTime` に `(-1 * delay)` が入った状態でイベントが発生します。 +- {{domxref("AnimationEvent.pseudoElement")}} {{readonlyInline}} + - : {{domxref("DOMString")}} で、 `'::'` で始まり、アニメーションが実行される [疑似要素](/ja/docs/Web/CSS/Pseudo-elements) の名前が入ります。このアニメーションが疑似要素ではなく要素で実行されている場合は、空文字列 `''` になります。 + +## メソッド + +_親の {{domxref("Event")}} から継承されるメソッドもあります_。 + +- {{domxref("AnimationEvent.initAnimationEvent()")}} {{non-standard_inline}}{{deprecated_inline}} + - : 非推奨の {{domxref("Document.createEvent()", "Document.createEvent(\"AnimationEvent\")")}} メソッドを使用して作成された `AnimationEvent` を初期化します。 + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| -------------------------------------------------------------------------------------------------------- | ------------------------------------ | -------- | +| {{SpecName("CSS3 Animations", "#interface-animationevent", "AnimationEvent")}} | {{Spec2("CSS3 Animations")}} | 初回定義 | + +## ブラウザーの対応 + +{{Compat("api.AnimationEvent")}} + +## 関連情報 + +- [CSS アニメーションの使用](/ja/docs/Web/CSS/CSS_Animations/Using_CSS_animations) +- アニメーションに関する CSS プロパティと @-規則: {{cssxref("animation")}}, {{cssxref("animation-delay")}}, {{cssxref("animation-direction")}}, {{cssxref("animation-duration")}}, {{cssxref("animation-fill-mode")}}, {{cssxref("animation-iteration-count")}}, {{cssxref("animation-name")}}, {{cssxref("animation-play-state")}}, {{cssxref("animation-timing-function")}}, {{cssxref("@keyframes")}}. diff --git a/files/ja/web/api/atob/index.html b/files/ja/web/api/atob/index.html deleted file mode 100644 index 7dd4eaeb6f57ba..00000000000000 --- a/files/ja/web/api/atob/index.html +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: WindowOrWorkerGlobalScope.atob() -slug: Web/API/atob -tags: - - API - - HTML DOM - - Method - - Reference - - WindowOrWorkerGlobalScope - - atob -translation_of: Web/API/WindowOrWorkerGlobalScope/atob -original_slug: Web/API/WindowOrWorkerGlobalScope/atob ---- -

{{APIRef("HTML DOM")}}

- -

WindowOrWorkerGlobalScope.atob() 関数は、 {{glossary("Base64")}} エンコーディングでエンコードされたデータの文字列をデコードします。 {{domxref("WindowOrWorkerGlobalScope.btoa","btoa()")}} メソッドを使用して、通信に問題が発生する可能性のあるデータをエンコードして送信し、送信した後に atob() メソッドを使用して再度デコードすることができます。例えば、ASCII の 0 から 31 までのコードような制御文字をエンコードして送信し、デコードすることができます。

- -

Unicode や UTF-8 文字列の使用については、 {{domxref("WindowOrWorkerGlobalScope.btoa", "btoa()")}} の「Uncode 文字列」の節を参照してください。

- -

構文

- -
var decodedData = scope.atob(encodedData);
- -

引数

- -
-
encodedData
-
エンコードされたデータが入っているバイナリ文字列です。
-
- -

返値

- -

encodedData をデコードしたデータを含む ASCII 文字列です。

- -

例外

- -
-
{{domxref("DOMException")}} (name: InvalidCharacterError)
-
encodedData が妥当な base64 ではない場合に発行されます。
-
- -

- -
const encodedData = window.btoa('Hello, world'); // 文字列をエンコード
-const decodedData = window.atob(encodedData); // 文字列をデコード
- -

ポリフィル

- -

対応していないブラウザーでは、 https://github.com/MaxArt2501/base64-js/blob/master/base64.js のポリフィルを利用することができます。

- -

仕様書

- - - - - - - - - - - - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName('HTML WHATWG', '#dom-atob', 'WindowOrWorkerGlobalScope.atob()')}}{{Spec2('HTML WHATWG')}}最新の仕様で、メソッドを WindowOrWorkerGlobalScope ミックスインに移動。
{{SpecName('HTML5.1', '#dom-windowbase64-atob', 'WindowBase64.atob()')}}{{Spec2('HTML5.1')}}{{SpecName("HTML WHATWG")}} のスナップショット、変更なし。
{{SpecName("HTML5 W3C", "#dom-windowbase64-atob", "WindowBase64.atob()")}}{{Spec2('HTML5 W3C')}}{{SpecName("HTML WHATWG")}} のスナップショット。 WindowBase64 の作成 (以前の対象だったプロパティ)。
- -

ブラウザーの互換性

- -
-

{{Compat("api.WindowOrWorkerGlobalScope.atob")}}

-
- -

関連情報

- - diff --git a/files/ja/web/api/atob/index.md b/files/ja/web/api/atob/index.md new file mode 100644 index 00000000000000..a916bde8d1c958 --- /dev/null +++ b/files/ja/web/api/atob/index.md @@ -0,0 +1,65 @@ +--- +title: WindowOrWorkerGlobalScope.atob() +slug: Web/API/atob +tags: + - API + - HTML DOM + - Method + - Reference + - WindowOrWorkerGlobalScope + - atob +translation_of: Web/API/WindowOrWorkerGlobalScope/atob +original_slug: Web/API/WindowOrWorkerGlobalScope/atob +--- +{{APIRef("HTML DOM")}} + +**`WindowOrWorkerGlobalScope.atob()`** 関数は、 {{glossary("Base64")}} エンコーディングでエンコードされたデータの文字列をデコードします。 {{domxref("WindowOrWorkerGlobalScope.btoa","btoa()")}} メソッドを使用して、通信に問題が発生する可能性のあるデータをエンコードして送信し、送信した後に `atob()` メソッドを使用して再度デコードすることができます。例えば、ASCII の 0 から 31 までのコードような制御文字をエンコードして送信し、デコードすることができます。 + +Unicode や UTF-8 文字列の使用については、 {{domxref("WindowOrWorkerGlobalScope.btoa", "btoa()")}} の「Uncode 文字列」の節を参照してください。 + +## 構文 + + var decodedData = scope.atob(encodedData); + +### 引数 + +- `encodedData` + - : エンコードされたデータが入っている[バイナリ文字列](/ja/docs/Web/API/DOMString/Binary)です。 + +### 返値 + +`encodedData` をデコードしたデータを含む ASCII 文字列です。 + +### 例外 + +- {{domxref("DOMException")}} (name: `InvalidCharacterError`) + - : `encodedData` が妥当な base64 ではない場合に発行されます。 + +## 例 + +```js +const encodedData = window.btoa('Hello, world'); // 文字列をエンコード +const decodedData = window.atob(encodedData); // 文字列をデコード +``` + +## ポリフィル + +対応していないブラウザーでは、 のポリフィルを利用することができます。 + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| ---------------------------------------------------------------------------------------------------- | -------------------------------- | -------------------------------------------------------------------------------------------------------------- | +| {{SpecName('HTML WHATWG', '#dom-atob', 'WindowOrWorkerGlobalScope.atob()')}} | {{Spec2('HTML WHATWG')}} | 最新の仕様で、メソッドを `WindowOrWorkerGlobalScope` ミックスインに移動。 | +| {{SpecName('HTML5.1', '#dom-windowbase64-atob', 'WindowBase64.atob()')}} | {{Spec2('HTML5.1')}} | {{SpecName("HTML WHATWG")}} のスナップショット、変更なし。 | +| {{SpecName("HTML5 W3C", "#dom-windowbase64-atob", "WindowBase64.atob()")}} | {{Spec2('HTML5 W3C')}} | {{SpecName("HTML WHATWG")}} のスナップショット。 `WindowBase64` の作成 (以前の対象だったプロパティ)。 | + +## ブラウザーの互換性 + +{{Compat("api.WindowOrWorkerGlobalScope.atob")}} + +## 関連情報 + +- [`data` URIs](/ja/docs/Web/HTTP/Basics_of_HTTP/Data_URIs) +- {{domxref("WindowOrWorkerGlobalScope.btoa","btoa()")}} +- [Components.utils.importGlobalProperties](/ja/docs/Mozilla/Tech/XPCOM/Language_Bindings/Components.utils.importGlobalProperties) diff --git a/files/ja/web/api/audiobuffersourcenode/index.html b/files/ja/web/api/audiobuffersourcenode/index.html deleted file mode 100644 index e35221f2f9ea6a..00000000000000 --- a/files/ja/web/api/audiobuffersourcenode/index.html +++ /dev/null @@ -1,166 +0,0 @@ ---- -title: AudioBufferSourceNode -slug: Web/API/AudioBufferSourceNode -translation_of: Web/API/AudioBufferSourceNode ---- -

{{APIRef("Web Audio API")}}

- -
-

AudioBufferSourceNodeは{{domxref("AudioScheduledSourceNode")}}を継承するインタフェースで、{{domxref("AudioBuffer")}}に保存されたインメモリ音声データからなるオーディオソースを表します。AudioBufferSourceNodeは、再生するタイミングに高い正確性が求められる音声を繰り返し再生する場合特に有益です。例えば、特定のリズムに合わせて、ディスクやネットワークからではなくメモリから読みだした音声を再生するといった場合です。正確なタイミングで音声を再生したいものの、音声データがディスクやネットワークから読み込まれる必要がある場合は{{domxref("AudioWorkletNode")}}を使用してください。

- -

{{InheritanceDiagram(600, 140)}}

- -

AudioBufferSourceNode は入力がなく、その出力は 1 つで、出力されるチャンネル数は AudioBufferSourceNode.buffer で参照される {{domxref("AudioBuffer")}} のチャンネル数によって決まります。この属性値が NULL の場合、つまりバッファがセットされていない場合、無音が出力されます。{{domxref("AudioBufferSourceNode")}}は一度しか再生できません。つまり、AudioBufferSourceNode.start()の呼び出しは一度しかできません。もし、再び再生するならば、別のAudioBufferSourceNodeを生成する必要があります。これらのノードは安価に生成でき、AudioBufferは何度も再生できます。よくAudioBufferSourceNodeは「撃ちっぱなし」で使わなければならない、と言われます。つまり、一度再生を始めると、そのノードへの参照はなくなり、自動的にガベージコレクトされます。

-
- -

AudioBufferSourceNode.stop()は何度も呼ぶことができます。AudioBufferSourceNodeがバッファの最後に達していないならば、最後の呼び出しがその前の呼び出しを上書きします。

- -


- The AudioBufferSourceNode takes the content of an AudioBuffer and m

- - - - - - - - - - - - - - - - -
Number of inputs0
Number of outputs1
Channel countdefined by the associated {{domxref("AudioBuffer")}}
- -

コンストラクタ

- -
-
{{domxref("AudioBufferSourceNode.AudioBufferSourceNode", "AudioBufferSourceNode()")}}
-
AudioBufferSourceNode オブジェクトを新しく作成して返します。{{domxref("AudioBufferSourceNode")}}は{{domxref("AudioContext.createBufferSource()")}}メソッドを用いてインスタンス化することができます。
-
- -

プロパティ

- -

親である{{domxref("AudioNode")}}のプロパティを継承しています。

- -
-
{{domxref("AudioBufferSourceNode.buffer")}}
-
再生される音声の{{domxref("AudioBuffer")}}です。NULLの場合1チャンネルからなる無音の音声(すべてのサンプルが0.0)です。
-
{{domxref("AudioBufferSourceNode.detune")}}
-
セント単位のデチューンを表すk-rate{{domxref("AudioParam")}}です。この値とplaybackRateの組み合わせで音声が再生される速度が決定されます。デフォルト値は0(デチューンなし)で、公称範囲は -∞ から ∞ です。
-
{{domxref("AudioBufferSourceNode.loop")}}
-
{{domxref("AudioBuffer")}}の最後に達したとき再び再生するかを表すブール値です。デフォルトはfalseです。
-
{{domxref("AudioBufferSourceNode.loopStart")}} {{optional_inline}}
-
looptrueのとき、{{domxref("AudioBuffer")}}を再び再生する位置(秒単位)を表す浮動小数点数です。デフォルトは0で、これは音声の初めからループが始まることを意味します。
-
{{domxref("AudioBufferSourceNode.loopEnd")}} {{optional_inline}}
-
looptrueのとき、{{domxref("AudioBuffer")}}の再生を停止してloopStartの地点に戻る位置(秒単位)を表す浮動小数点数です。デフォルトは0です。
-
{{domxref("AudioBufferSourceNode.playbackRate")}}
-
再生される音声の速度要素を表すa-rate{{domxref("AudioParam")}}です。この値が1.0のとき通常のサンプリングレートで出力されます。出力にピッチの修正が適用されない場合は、サンプルのピッチの変更に使うことができます。この値とdetuneの組み合わせで音声が再生される速度が決定されます。
-
- -

イベントハンドラ

- -

親である{{domxref("AudioScheduledSourceNode")}}のイベントハンドラを継承しています。

- -
-
{{domxref("AudioBufferSourceNode.onended")}}
-
{{event("ended_(Web_Audio)", "ended")}}イベントに関するコールバックを格納したイベントハンドラです。
-
- -

メソッド

- -

親である{{domxref("AudioNode")}}のメソッドを継承しています。

- -
-
{{domxref("AudioBufferSourceNode.start()")}}
-
設定された音声の再生をスケジュールするか、直ちに再生します。
-
{{domxref("AudioBufferSourceNode.stop()")}}
-
設定された音声の再生の停止をスケジュールするか、直ちに停止します。
-
- -

- -

次の例は、2秒間のバッファを生成し、ホワイトノイズを書き込み、AudioBufferSourceNodeで再生します。コメントは何をしているかを簡単に説明しています。

- -
-

注: コードをすぐに実行することや、ソースコードを閲覧することもできます。

-
- -
var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
-var button = document.querySelector('button');
-var pre = document.querySelector('pre');
-var myScript = document.querySelector('script');
-
-pre.innerHTML = myScript.innerHTML;
-
-// ステレオ
-var channels = 2;
-// AudioContextのサンプルレートで2秒間の空のステレオバッファを生成する
-var frameCount = audioCtx.sampleRate * 2.0;
-
-var myArrayBuffer = audioCtx.createBuffer(2, frameCount, audioCtx.sampleRate);
-
-button.onclick = function() {
-  // バッファにホワイトノイズを書き込む;
-  // 単なる-1.0から1.0の間の乱数の値である
-  for (var channel = 0; channel < channels; channel++) {
-   // 実際のデータの配列を得る
-   var nowBuffering = myArrayBuffer.getChannelData(channel);
-   for (var i = 0; i < frameCount; i++) {
-     // Math.random()は[0; 1.0]である
-     // 音声は[-1.0; 1.0]である必要がある
-     nowBuffering[i] = Math.random() * 2 - 1;
-   }
-  }
-
-  // AudioBufferSourceNodeを得る
-  // これはAudioBufferを再生するときに使うAudioNodeである
-  var source = audioCtx.createBufferSource();
-  // AudioBufferSourceNodeにバッファを設定する
-  source.buffer = myArrayBuffer;
-  // AudioBufferSourceNodeを出力先に接続すると音声が聞こえるようになる
-  source.connect(audioCtx.destination);
-  // 音源の再生を始める
-  source.start();
-}
- -
-

注: decodeAudioDataの例は、{{domxref("AudioContext.decodeAudioData")}}のページを参照してください。

-
- -

仕様

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('Web Audio API', '#AudioBufferSourceNode-section', 'AudioBufferSourceNode')}}{{Spec2('Web Audio API')}}
- -

ブラウザ互換性

- -

{{Compat("api.AudioBufferSourceNode")}}

- -

Chrome notes

- -

The buffer property was removed in {{CompatChrome(44.0)}}.

- - -

- -

関連情報

- - diff --git a/files/ja/web/api/audiobuffersourcenode/index.md b/files/ja/web/api/audiobuffersourcenode/index.md new file mode 100644 index 00000000000000..962d9a591e5a1f --- /dev/null +++ b/files/ja/web/api/audiobuffersourcenode/index.md @@ -0,0 +1,125 @@ +--- +title: AudioBufferSourceNode +slug: Web/API/AudioBufferSourceNode +translation_of: Web/API/AudioBufferSourceNode +--- +{{APIRef("Web Audio API")}} + +**`AudioBufferSourceNode`**は{{domxref("AudioScheduledSourceNode")}}を継承するインタフェースで、{{domxref("AudioBuffer")}}に保存されたインメモリ音声データからなるオーディオソースを表します。`AudioBufferSourceNode`は、再生するタイミングに高い正確性が求められる音声を繰り返し再生する場合特に有益です。例えば、特定のリズムに合わせて、ディスクやネットワークからではなくメモリから読みだした音声を再生するといった場合です。正確なタイミングで音声を再生したいものの、音声データがディスクやネットワークから読み込まれる必要がある場合は{{domxref("AudioWorkletNode")}}を使用してください。 + +{{InheritanceDiagram(600, 140)}} + +`AudioBufferSourceNode` は入力がなく、その出力は 1 つで、出力されるチャンネル数は AudioBufferSourceNode.buffer で参照される {{domxref("AudioBuffer")}} のチャンネル数によって決まります。この属性値が NULL の場合、つまりバッファがセットされていない場合、無音が出力されます。{{domxref("AudioBufferSourceNode")}}は一度しか再生できません。つまり、`AudioBufferSourceNode.start()`の呼び出しは一度しかできません。もし、再び再生するならば、別の`AudioBufferSourceNode`を生成する必要があります。これらのノードは安価に生成でき、`AudioBuffer`は何度も再生できます。よく`AudioBufferSourceNode`は「撃ちっぱなし」で使わなければならない、と言われます。つまり、一度再生を始めると、そのノードへの参照はなくなり、自動的にガベージコレクトされます。 + +`AudioBufferSourceNode.stop()`は何度も呼ぶことができます。`AudioBufferSourceNode`がバッファの最後に達していないならば、最後の呼び出しがその前の呼び出しを上書きします。 + +![The AudioBufferSourceNode takes the content of an AudioBuffer and m](https://mdn.mozillademos.org/files/5155/WebAudioAudioBufferSourceNode.png) + +| Number of inputs | `0` | +| ----------------- | -------------------------------------------------------------- | +| Number of outputs | `1` | +| Channel count | defined by the associated {{domxref("AudioBuffer")}} | + +## コンストラクタ + +- {{domxref("AudioBufferSourceNode.AudioBufferSourceNode", "AudioBufferSourceNode()")}} + - : `AudioBufferSourceNode` オブジェクトを新しく作成して返します。{{domxref("AudioBufferSourceNode")}}は{{domxref("AudioContext.createBufferSource()")}}メソッドを用いてインスタンス化することができます。 + +## プロパティ + +_親である{{domxref("AudioNode")}}のプロパティを継承しています。_ + +- {{domxref("AudioBufferSourceNode.buffer")}} + - : 再生される音声の{{domxref("AudioBuffer")}}です。NULL の場合 1 チャンネルからなる無音の音声(すべてのサンプルが 0.0)です。 +- {{domxref("AudioBufferSourceNode.detune")}} + - : [セント](https://ja.wikipedia.org/wiki/%E3%82%BB%E3%83%B3%E3%83%88_%28%E9%9F%B3%E6%A5%BD%29)単位のデチューンを表す[k-rate](/ja/docs/DOM/AudioParam#k-rate){{domxref("AudioParam")}}です。この値と`playbackRate`の組み合わせで音声が再生される速度が決定されます。デフォルト値は 0(デチューンなし)で、公称範囲は -∞ から ∞ です。 +- {{domxref("AudioBufferSourceNode.loop")}} + - : {{domxref("AudioBuffer")}}の最後に達したとき再び再生するかを表すブール値です。デフォルトは`false`です。 +- {{domxref("AudioBufferSourceNode.loopStart")}} {{optional_inline}} + - : `loop`が`true`のとき、{{domxref("AudioBuffer")}}を再び再生する位置(秒単位)を表す浮動小数点数です。デフォルトは 0 で、これは音声の初めからループが始まることを意味します。 +- {{domxref("AudioBufferSourceNode.loopEnd")}} {{optional_inline}} + - : `loop`が`true`のとき、{{domxref("AudioBuffer")}}の再生を停止して`loopStart`の地点に戻る位置(秒単位)を表す浮動小数点数です。デフォルトは 0 です。 +- {{domxref("AudioBufferSourceNode.playbackRate")}} + - : 再生される音声の速度要素を表す[a-rate](/ja/docs/Web/API/AudioParam#a-rate){{domxref("AudioParam")}}です。この値が 1.0 のとき通常のサンプリングレートで出力されます。出力にピッチの修正が適用されない場合は、サンプルのピッチの変更に使うことができます。この値と`detune`の組み合わせで音声が再生される速度が決定されます。 + +### イベントハンドラ + +_親である{{domxref("AudioScheduledSourceNode")}}のイベントハンドラを継承しています。_ + +- {{domxref("AudioBufferSourceNode.onended")}} + - : {{event("ended_(Web_Audio)", "ended")}}イベントに関するコールバックを格納したイベントハンドラです。 + +## メソッド + +_親である{{domxref("AudioNode")}}のメソッドを継承しています。_ + +- {{domxref("AudioBufferSourceNode.start()")}} + - : 設定された音声の再生をスケジュールするか、直ちに再生します。 +- {{domxref("AudioBufferSourceNode.stop()")}} + - : 設定された音声の再生の停止をスケジュールするか、直ちに停止します。 + +## 例 + +次の例は、2 秒間のバッファを生成し、ホワイトノイズを書き込み、[`AudioBufferSourceNode`](/ja/docs/Web/API/AudioBufferSourceNode "The AudioBufferSourceNode インタフェーエスはメモリ上にある音声データ (AudioBuffer) を扱うオーディオソースを表します。このオブジェクトはオーディオソースとなる AudioNode です。")で再生します。コメントは何をしているかを簡単に説明しています。 + +> **Note:** **注:** [コードをすぐに実行する](https://mdn.github.io/webaudio-examples/audio-buffer/)ことや、[ソースコードを閲覧する](https://github.com/mdn/webaudio-examples/blob/master/audio-buffer/index.html)こともできます。 + +```js +var audioCtx = new (window.AudioContext || window.webkitAudioContext)(); +var button = document.querySelector('button'); +var pre = document.querySelector('pre'); +var myScript = document.querySelector('script'); + +pre.innerHTML = myScript.innerHTML; + +// ステレオ +var channels = 2; +// AudioContextのサンプルレートで2秒間の空のステレオバッファを生成する +var frameCount = audioCtx.sampleRate * 2.0; + +var myArrayBuffer = audioCtx.createBuffer(2, frameCount, audioCtx.sampleRate); + +button.onclick = function() { + // バッファにホワイトノイズを書き込む; + // 単なる-1.0から1.0の間の乱数の値である + for (var channel = 0; channel < channels; channel++) { + // 実際のデータの配列を得る + var nowBuffering = myArrayBuffer.getChannelData(channel); + for (var i = 0; i < frameCount; i++) { + // Math.random()は[0; 1.0]である + // 音声は[-1.0; 1.0]である必要がある + nowBuffering[i] = Math.random() * 2 - 1; + } + } + + // AudioBufferSourceNodeを得る + // これはAudioBufferを再生するときに使うAudioNodeである + var source = audioCtx.createBufferSource(); + // AudioBufferSourceNodeにバッファを設定する + source.buffer = myArrayBuffer; + // AudioBufferSourceNodeを出力先に接続すると音声が聞こえるようになる + source.connect(audioCtx.destination); + // 音源の再生を始める + source.start(); +} +``` + +> **Note:** **注:** `decodeAudioData`の例は、{{domxref("AudioContext.decodeAudioData")}}のページを参照してください。 + +## 仕様 + +| Specification | Status | Comment | +| -------------------------------------------------------------------------------------------------------------------- | ------------------------------------ | ------- | +| {{SpecName('Web Audio API', '#AudioBufferSourceNode-section', 'AudioBufferSourceNode')}} | {{Spec2('Web Audio API')}} | | + +## ブラウザ互換性 + +{{Compat("api.AudioBufferSourceNode")}} + +### Chrome notes + +The buffer property was removed in {{CompatChrome(44.0)}}. + +## 関連情報 + +- [Using the Web Audio API](/ja/docs/Web/API/Web_Audio_API/Using_Web_Audio_API) diff --git a/files/ja/web/api/audiocontext/audiocontext/index.html b/files/ja/web/api/audiocontext/audiocontext/index.html deleted file mode 100644 index 83e3e917b4ff07..00000000000000 --- a/files/ja/web/api/audiocontext/audiocontext/index.html +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: AudioContext() -slug: Web/API/AudioContext/AudioContext -translation_of: Web/API/AudioContext/AudioContext ---- -

{{APIRef("Web Audio API")}}{{SeeCompatTable}}

- -

AudioContext() コンストラクタは新しい {{domxref("AudioContext")}} オブジェクトを作成します。このオブジェクトはオーディオモジュールが相互に接続された音声処理のグラフを表現しています。このグラフ中で用いられるオーディオモジュールは {{domxref("AudioNode")}} として表現されます。

- -

記法

- -
var audioContext = new AudioContext(options)
- -

引数

- -

なし。

- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('Web Audio API','#AudioContext','AudioContext()')}}{{Spec2('Web Audio API')}}Initial definition.
- -

ブラウザー互換性

- -

{{Compat("api.AudioContext.AudioContext")}}

diff --git a/files/ja/web/api/audiocontext/audiocontext/index.md b/files/ja/web/api/audiocontext/audiocontext/index.md new file mode 100644 index 00000000000000..fafcf27380ef5a --- /dev/null +++ b/files/ja/web/api/audiocontext/audiocontext/index.md @@ -0,0 +1,26 @@ +--- +title: AudioContext() +slug: Web/API/AudioContext/AudioContext +translation_of: Web/API/AudioContext/AudioContext +--- +{{APIRef("Web Audio API")}}{{SeeCompatTable}} + +**`AudioContext()`** コンストラクタは新しい {{domxref("AudioContext")}} オブジェクトを作成します。このオブジェクトはオーディオモジュールが相互に接続された音声処理のグラフを表現しています。このグラフ中で用いられるオーディオモジュールは {{domxref("AudioNode")}} として表現されます。 + +## 記法 + + var audioContext = new AudioContext(options) + +### 引数 + +なし。 + +**仕様** + +| 仕様 | 状態 | コメント | +| ------------------------------------------------------------------------------------ | ------------------------------------ | ------------------- | +| {{SpecName('Web Audio API','#AudioContext','AudioContext()')}} | {{Spec2('Web Audio API')}} | Initial definition. | + +## ブラウザー互換性 + +{{Compat("api.AudioContext.AudioContext")}} diff --git a/files/ja/web/api/audiocontext/close/index.html b/files/ja/web/api/audiocontext/close/index.html deleted file mode 100644 index f2c7c1c8f9fe4b..00000000000000 --- a/files/ja/web/api/audiocontext/close/index.html +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: AudioContext.close() -slug: Web/API/AudioContext/close -translation_of: Web/API/AudioContext/close ---- -

{{ APIRef("Web Audio API") }}

- -

{{ domxref("AudioContext") }}インターフェースのclose()メソッドは、オーディオコンテキストを閉じて使っていたシステムのオーディオリソースを全て解放します。

- -

閉じたコンテキストは新しいノードを生成できませんが、音声データのデコードやバッファの生成などは可能です。

- -

この関数は、他の参照も同様に解放されない限り、AudioContextが生成したオブジェクトは自動的には解放しません。しかし、これはオーディオリソースを強制的に解放します。よって、オーディオコンテキストの更なる生成と使用はできなくなり、オーディオコンテキストの時間の流れは止まり、音声データの処理は停止します。
- 全てのAudioContext-creation-blockingリソースが解放されたとき、返された{{jsxref("Promise")}}が完了します。このメソッドは{{domxref("OfflineAudioContext")}}で呼ばれたときINVALID_STATE_ERR例外が発生します。
-

- -

構文

- -
var audioCtx = new AudioContext();
-audioCtx.close().then(function() { ... });
-
- -

戻り値

- -

voidで完了する{{jsxref("Promise")}}。

- -

- -

次のスニペットはAudioContext states デモ(すぐ実行)から取ったものです。stopボタンをクリックすると、close()が呼ばれます。プロミスに成功すると、リセットされ最初の状態に戻ります。

- -
stopBtn.onclick = function() {
-  audioCtx.close().then(function() {
-    startBtn.removeAttribute('disabled');
-    susresBtn.setAttribute('disabled','disabled');
-    stopBtn.setAttribute('disabled','disabled');
-  });
-}
-
- -

仕様

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('Web Audio API', '#widl-AudioContext-close-Promise-void', 'close()')}}{{Spec2('Web Audio API')}}
- -

ブラウザ互換性

- -

{{Compat("api.AudioContext.close")}}

- -

参考

- - diff --git a/files/ja/web/api/audiocontext/close/index.md b/files/ja/web/api/audiocontext/close/index.md new file mode 100644 index 00000000000000..e215b66f55b02e --- /dev/null +++ b/files/ja/web/api/audiocontext/close/index.md @@ -0,0 +1,53 @@ +--- +title: AudioContext.close() +slug: Web/API/AudioContext/close +translation_of: Web/API/AudioContext/close +--- +{{ APIRef("Web Audio API") }} + +{{ domxref("AudioContext") }}インターフェースの`close()`メソッドは、オーディオコンテキストを閉じて使っていたシステムのオーディオリソースを全て解放します。 + +閉じたコンテキストは新しいノードを生成できませんが、音声データのデコードやバッファの生成などは可能です。 + +この関数は、他の参照も同様に解放されない限り、AudioContext が生成したオブジェクトは自動的には解放しません。しかし、これはオーディオリソースを強制的に解放します。よって、オーディオコンテキストの更なる生成と使用はできなくなり、オーディオコンテキストの時間の流れは止まり、音声データの処理は停止します。 +全ての AudioContext-creation-blocking リソースが解放されたとき、返された{{jsxref("Promise")}}が完了します。このメソッドは{{domxref("OfflineAudioContext")}}で呼ばれたとき`INVALID_STATE_ERR`例外が発生します。 + +## 構文 + +```js +var audioCtx = new AudioContext(); +audioCtx.close().then(function() { ... }); +``` + +### 戻り値 + +void で完了する{{jsxref("Promise")}}。 + +## 例 + +次のスニペットは[AudioContext states デモ](https://github.com/mdn/audiocontext-states/settings)([すぐ実行](http://mdn.github.io/audiocontext-states/))から取ったものです。stop ボタンをクリックすると、`close()`が呼ばれます。プロミスに成功すると、リセットされ最初の状態に戻ります。 + +```js +stopBtn.onclick = function() { + audioCtx.close().then(function() { + startBtn.removeAttribute('disabled'); + susresBtn.setAttribute('disabled','disabled'); + stopBtn.setAttribute('disabled','disabled'); + }); +} +``` + +## 仕様 + +| Specification | Status | Comment | +| ------------------------------------------------------------------------------------------------------------ | ------------------------------------ | ------- | +| {{SpecName('Web Audio API', '#widl-AudioContext-close-Promise-void', 'close()')}} | {{Spec2('Web Audio API')}} | | + +## ブラウザ互換性 + +{{Compat("api.AudioContext.close")}} + +## 参考 + +- [Using the Web Audio API](/ja/docs/Web_Audio_API/Using_Web_Audio_API) +- [Web Audio API](/ja/docs/Web/API/Web_Audio_API) diff --git a/files/ja/web/api/audiocontext/createmediaelementsource/index.html b/files/ja/web/api/audiocontext/createmediaelementsource/index.html deleted file mode 100644 index 5326e62701fbe6..00000000000000 --- a/files/ja/web/api/audiocontext/createmediaelementsource/index.html +++ /dev/null @@ -1,103 +0,0 @@ ---- -title: AudioContext.createMediaElementSource() -slug: Web/API/AudioContext/createMediaElementSource -translation_of: Web/API/AudioContext/createMediaElementSource ---- -

{{ APIRef("Web Audio API") }}

- -
-

{{ domxref("AudioContext") }}インターフェースのcreateMediaElementSource()メソッドは、新しく{{ domxref("MediaElementAudioSourceNode") }} オブジェクトを作成するために使用されます。HTML内に存在する{{htmlelement("audio")}} または {{htmlelement("video")}} を指定すると、そのオーディオを再生し、操作することができます。

- -

media element audio source nodesについての詳細は、 {{ domxref("MediaElementAudioSourceNode") }} を参照して下さい。

-
- -

構文

- -
var audioCtx = new AudioContext();
-var source = audioCtx.createMediaElementSource(myMediaElement);
- -

引数

- -
-
myMediaElement
-
プロセッシング・グラフで操作するための {{ domxref("HTMLMediaElement") }} オブジェクトです。
-
- -

戻り値

- -

{{domxref("MediaElementAudioSourceNode")}}

- -

- -

以下の例では、createMediaElementSource()を使用して {{ htmlelement("audio") }} から音源を作成します。 再生される音源は {{ domxref("GainNode") }} を介し {{ domxref("AudioDestinationNode") }} に渡されます。マウスポインタが動くとupdatePage()関数が呼ばれ、マウスポインタのY座標の値をウィンドウの高さで割った比率を元に現在のゲインを計算します。また、マウスポインタを上下に動かすことで、再生している音楽の音量を上げ下げできます。

- -
-

注記: この例のデモと、ソースを見ることができます。

-
- -
var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
-var myAudio = document.querySelector('audio');
-var pre = document.querySelector('pre');
-var myScript = document.querySelector('script');
-
-pre.innerHTML = myScript.innerHTML;
-
-// MediaElementAudioSourceNodeを作成
-// HTMLMediaElementをそこへ接続
-var source = audioCtx.createMediaElementSource(myAudio);
-
-// gain nodeを作成
-var gainNode = audioCtx.createGain();
-
-// マウスポインタのY座標と
-// 画面の高さを保持するための変数を作成
-var CurY;
-var HEIGHT = window.innerHeight;
-
-// マウスが動いたら新しいY座標を取得し、
-// ゲインの値を設定する
-document.onmousemove = updatePage;
-
-function updatePage(e) {
-    CurY = (window.Event) ? e.pageY : event.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
-
-    gainNode.gain.value = CurY/HEIGHT;
-}
-
-
-// AudioBufferSourceNodeをgainNodeへ接続
-// gainNodeをdestinationへ接続
-// これで音楽の再生と、マウスカーソルで音量を調節できるようになる
-source.connect(gainNode);
-gainNode.connect(audioCtx.destination);
- -
-

注記: createMediaElementSource()を呼んだ結果として {{ domxref("HTMLMediaElement") }} から再生される音声はAudioContextのプロセッシング・グラフへ再度ルーティングされます。従って、createMediaElementSource()を呼んだ後も音声の再生/一時停止はmedia element API及びプレーヤーの再生/一時停止ボタンから操作できます。

-
- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('Web Audio API', '#widl-AudioContext-createMediaElementSource-MediaElementAudioSourceNode-HTMLMediaElement-mediaElement', 'createMediaElementSource()')}}{{Spec2('Web Audio API')}}
- -

ブラウザの互換性

- -

{{Compat("api.AudioContext.createMediaElementSource")}}

- -

関連情報

- - diff --git a/files/ja/web/api/audiocontext/createmediaelementsource/index.md b/files/ja/web/api/audiocontext/createmediaelementsource/index.md new file mode 100644 index 00000000000000..342b14e342cb23 --- /dev/null +++ b/files/ja/web/api/audiocontext/createmediaelementsource/index.md @@ -0,0 +1,86 @@ +--- +title: AudioContext.createMediaElementSource() +slug: Web/API/AudioContext/createMediaElementSource +translation_of: Web/API/AudioContext/createMediaElementSource +--- +{{ APIRef("Web Audio API") }} + +{{ domxref("AudioContext") }}インターフェースの createMediaElementSource()メソッドは、新しく{{ domxref("MediaElementAudioSourceNode") }} オブジェクトを作成するために使用されます。HTML 内に存在する{{htmlelement("audio")}} または {{htmlelement("video")}} を指定すると、そのオーディオを再生し、操作することができます。 + +media element audio source nodes についての詳細は、 {{ domxref("MediaElementAudioSourceNode") }} を参照して下さい。 + +## 構文 + +```js +var audioCtx = new AudioContext(); +var source = audioCtx.createMediaElementSource(myMediaElement); +``` + +### 引数 + +- `myMediaElement` + - : プロセッシング・グラフで操作するための {{ domxref("HTMLMediaElement") }} オブジェクトです。 + +### 戻り値 + +{{domxref("MediaElementAudioSourceNode")}} + +## 例 + +以下の例では、createMediaElementSource()を使用して {{ htmlelement("audio") }} から音源を作成します。 再生される音源は {{ domxref("GainNode") }} を介し {{ domxref("AudioDestinationNode") }} に渡されます。マウスポインタが動くと updatePage()関数が呼ばれ、マウスポインタの Y 座標の値をウィンドウの高さで割った比率を元に現在のゲインを計算します。また、マウスポインタを上下に動かすことで、再生している音楽の音量を上げ下げできます。 + +> **Note:** **注記**: [この例のデモ](http://mdn.github.io/media-source-buffer/)と、[ソース](https://github.com/mdn/media-source-buffer)を見ることができます。 + +```js +var audioCtx = new (window.AudioContext || window.webkitAudioContext)(); +var myAudio = document.querySelector('audio'); +var pre = document.querySelector('pre'); +var myScript = document.querySelector('script'); + +pre.innerHTML = myScript.innerHTML; + +// MediaElementAudioSourceNodeを作成 +// HTMLMediaElementをそこへ接続 +var source = audioCtx.createMediaElementSource(myAudio); + +// gain nodeを作成 +var gainNode = audioCtx.createGain(); + +// マウスポインタのY座標と +// 画面の高さを保持するための変数を作成 +var CurY; +var HEIGHT = window.innerHeight; + +// マウスが動いたら新しいY座標を取得し、 +// ゲインの値を設定する +document.onmousemove = updatePage; + +function updatePage(e) { + CurY = (window.Event) ? e.pageY : event.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop); + + gainNode.gain.value = CurY/HEIGHT; +} + + +// AudioBufferSourceNodeをgainNodeへ接続 +// gainNodeをdestinationへ接続 +// これで音楽の再生と、マウスカーソルで音量を調節できるようになる +source.connect(gainNode); +gainNode.connect(audioCtx.destination); +``` + +> **Note:** **注記**: createMediaElementSource()を呼んだ結果として {{ domxref("HTMLMediaElement") }} から再生される音声は AudioContext のプロセッシング・グラフへ再度ルーティングされます。従って、*createMediaElementSource()を呼んだ後も*音声の再生/一時停止は media element API 及びプレーヤーの再生/一時停止ボタンから操作できます。 + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ | -------- | +| {{SpecName('Web Audio API', '#widl-AudioContext-createMediaElementSource-MediaElementAudioSourceNode-HTMLMediaElement-mediaElement', 'createMediaElementSource()')}} | {{Spec2('Web Audio API')}} | | + +## ブラウザの互換性 + +{{Compat("api.AudioContext.createMediaElementSource")}} + +## 関連情報 + +- [Web Audio API の利用](/ja/docs/Web_Audio_API/Using_Web_Audio_API) diff --git a/files/ja/web/api/audiocontext/resume/index.html b/files/ja/web/api/audiocontext/resume/index.html deleted file mode 100644 index dfaf07724b4fd4..00000000000000 --- a/files/ja/web/api/audiocontext/resume/index.html +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: AudioContext.resume() -slug: Web/API/AudioContext/resume -translation_of: Web/API/AudioContext/resume ---- -

{{ APIRef("Web Audio API") }}

- -

{{ domxref("AudioContext") }}インターフェースのresume()メソッドは、一時停止されたオーディオコンテキストの時間の流れを再開します。

- -

{{domxref("OfflineAudioContext")}}でこのメソッドを呼ぶとINVALID_STATE_ERR例外が発生します。

- -

構文

- -
Promise<> baseAudioContext.resume();
-
- -

引数

- -

なし

- -

戻り値

- -

voidで完了する{{jsxref("Promise")}}。コンテキストが既に閉じている場合、プロミスは失敗します。

- -

- -

次のスニペットはAudioContext states デモ(すぐ実行)から取ったものです。suspend/resumeボタンをクリックすると、{{domxref("AudioContext.state")}}を問い合わせます—もしrunningならば、{{domxref("suspend()")}}が呼ばれます。suspendedならば、resume()が呼ばれます。両方ともプロミスに成功するとボタンのラベルが適したものに更新されます。

- -
susresBtn.onclick = function() {
-  if(audioCtx.state === 'running') {
-    audioCtx.suspend().then(function() {
-      susresBtn.textContent = 'Resume context';
-    });
-  } else if(audioCtx.state === 'suspended') {
-    audioCtx.resume().then(function() {
-      susresBtn.textContent = 'Suspend context';
-    });
-  }
-}
-
- -

仕様

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('Web Audio API', '#dom-baseaudiocontext-resume', 'resume()')}}{{Spec2('Web Audio API')}}
- -

ブラウザ互換性

- -
-
- - -

{{Compat("api.BaseAudioContext.resume")}}

-
-
- -

参考

- - diff --git a/files/ja/web/api/audiocontext/resume/index.md b/files/ja/web/api/audiocontext/resume/index.md new file mode 100644 index 00000000000000..33950a2fc5bb28 --- /dev/null +++ b/files/ja/web/api/audiocontext/resume/index.md @@ -0,0 +1,57 @@ +--- +title: AudioContext.resume() +slug: Web/API/AudioContext/resume +translation_of: Web/API/AudioContext/resume +--- +{{ APIRef("Web Audio API") }} + +{{ domxref("AudioContext") }}インターフェースの`resume()`メソッドは、一時停止されたオーディオコンテキストの時間の流れを再開します。 + +{{domxref("OfflineAudioContext")}}でこのメソッドを呼ぶと`INVALID_STATE_ERR`例外が発生します。 + +## 構文 + +```js +Promise<> baseAudioContext.resume(); +``` + +### 引数 + +なし + +### 戻り値 + +void で完了する{{jsxref("Promise")}}。コンテキストが既に閉じている場合、プロミスは失敗します。 + +## 例 + +次のスニペットは[AudioContext states デモ](https://github.com/mdn/audiocontext-states/settings)([すぐ実行](http://mdn.github.io/audiocontext-states/))から取ったものです。suspend/resume ボタンをクリックすると、{{domxref("AudioContext.state")}}を問い合わせます—もし`running`ならば、{{domxref("suspend()")}}が呼ばれます。`suspended`ならば、`resume()`が呼ばれます。両方ともプロミスに成功するとボタンのラベルが適したものに更新されます。 + +```js +susresBtn.onclick = function() { + if(audioCtx.state === 'running') { + audioCtx.suspend().then(function() { + susresBtn.textContent = 'Resume context'; + }); + } else if(audioCtx.state === 'suspended') { + audioCtx.resume().then(function() { + susresBtn.textContent = 'Suspend context'; + }); + } +} +``` + +## 仕様 + +| Specification | Status | Comment | +| ------------------------------------------------------------------------------------------------ | ------------------------------------ | ------- | +| {{SpecName('Web Audio API', '#dom-baseaudiocontext-resume', 'resume()')}} | {{Spec2('Web Audio API')}} | | + +## ブラウザ互換性 + +{{Compat("api.BaseAudioContext.resume")}} + +## 参考 + +- [Using the Web Audio API](/ja/docs/Web_Audio_API/Using_Web_Audio_API) +- [Web Audio API](/ja/docs/Web/API/Web_Audio_API) diff --git a/files/ja/web/api/audiocontext/suspend/index.html b/files/ja/web/api/audiocontext/suspend/index.html deleted file mode 100644 index b81d898830e803..00000000000000 --- a/files/ja/web/api/audiocontext/suspend/index.html +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: AudioContext.suspend() -slug: Web/API/AudioContext/suspend -translation_of: Web/API/AudioContext/suspend ---- -

{{ APIRef("Web Audio API") }}

- -

suspend()メソッドは、オーディオコンテキストの時間の流れを一時停止します。音声ハードウェアへのアクセスを一時的に停止し、処理に必要だったCPU/バッテリーの使用を減らすことが出来ます。これは、アプリケーションがしばらくの間オーディオを扱わない間に、音声ハードウェアに電源を供給しないようにしたいときに便利です。

- -

{{domxref("OfflineAudioContext")}}でこのメソッドを呼ぶとINVALID_STATE_ERR例外が発生します。

- -

構文

- -
var audioCtx = new AudioContext();
-audioCtx.suspend().then(function() { ... });
-
- -

戻り値

- -

voidで完了する{{jsxref("Promise")}}。コンテキストが既に閉じている場合、プロミスは失敗します。

- -

- -

次のスニペットはAudioContext states デモ(すぐ実行)から取ったものです。suspend/resumeボタンをクリックすると、{{domxref("AudioContext.state")}}を問い合わせます—もしrunningならば、suspend()が呼ばれます。suspendedならば、{{domxref("resume")}}が呼ばれます。両方ともプロミスに成功するとボタンのラベルが適したものに更新されます。

- -
susresBtn.onclick = function() {
-  if(audioCtx.state === 'running') {
-    audioCtx.suspend().then(function() {
-      susresBtn.textContent = 'Resume context';
-    });
-  } else if(audioCtx.state === 'suspended') {
-    audioCtx.resume().then(function() {
-      susresBtn.textContent = 'Suspend context';
-    });
-  }
-}
-
- -

仕様

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('Web Audio API', '#widl-AudioContext-suspend-Promise-void', 'close()')}}{{Spec2('Web Audio API')}}
- -

ブラウザ互換性

- -
- - -

{{Compat("api.AudioContext.suspend")}}

-
- -

参考

- - diff --git a/files/ja/web/api/audiocontext/suspend/index.md b/files/ja/web/api/audiocontext/suspend/index.md new file mode 100644 index 00000000000000..77761dc1311b71 --- /dev/null +++ b/files/ja/web/api/audiocontext/suspend/index.md @@ -0,0 +1,54 @@ +--- +title: AudioContext.suspend() +slug: Web/API/AudioContext/suspend +translation_of: Web/API/AudioContext/suspend +--- +{{ APIRef("Web Audio API") }} + +`suspend()`メソッドは、オーディオコンテキストの時間の流れを一時停止します。音声ハードウェアへのアクセスを一時的に停止し、処理に必要だった CPU/バッテリーの使用を減らすことが出来ます。これは、アプリケーションがしばらくの間オーディオを扱わない間に、音声ハードウェアに電源を供給しないようにしたいときに便利です。 + +{{domxref("OfflineAudioContext")}}でこのメソッドを呼ぶと`INVALID_STATE_ERR`例外が発生します。 + +## 構文 + +```js +var audioCtx = new AudioContext(); +audioCtx.suspend().then(function() { ... }); +``` + +### 戻り値 + +void で完了する{{jsxref("Promise")}}。コンテキストが既に閉じている場合、プロミスは失敗します。 + +## 例 + +次のスニペットは[AudioContext states デモ](https://github.com/mdn/audiocontext-states/settings)([すぐ実行](http://mdn.github.io/audiocontext-states/))から取ったものです。suspend/resume ボタンをクリックすると、{{domxref("AudioContext.state")}}を問い合わせます—もし`running`ならば、`suspend()`が呼ばれます。`suspended`ならば、{{domxref("resume")}}が呼ばれます。両方ともプロミスに成功するとボタンのラベルが適したものに更新されます。 + +```js +susresBtn.onclick = function() { + if(audioCtx.state === 'running') { + audioCtx.suspend().then(function() { + susresBtn.textContent = 'Resume context'; + }); + } else if(audioCtx.state === 'suspended') { + audioCtx.resume().then(function() { + susresBtn.textContent = 'Suspend context'; + }); + } +} +``` + +## 仕様 + +| Specification | Status | Comment | +| ---------------------------------------------------------------------------------------------------------------- | ------------------------------------ | ------- | +| {{SpecName('Web Audio API', '#widl-AudioContext-suspend-Promise-void', 'close()')}} | {{Spec2('Web Audio API')}} | | + +## ブラウザ互換性 + +{{Compat("api.AudioContext.suspend")}} + +## 参考 + +- [Using the Web Audio API](/ja/docs/Web_Audio_API/Using_Web_Audio_API) +- [Web Audio API](/ja/docs/Web/API/Web_Audio_API) diff --git a/files/ja/web/api/audiodestinationnode/index.html b/files/ja/web/api/audiodestinationnode/index.html deleted file mode 100644 index ba508b4ea497b0..00000000000000 --- a/files/ja/web/api/audiodestinationnode/index.html +++ /dev/null @@ -1,90 +0,0 @@ ---- -title: AudioDestinationNode -slug: Web/API/AudioDestinationNode -translation_of: Web/API/AudioDestinationNode ---- -

{{APIRef("Web Audio API")}}

- -
-

AudioDestinationNodeインターフェースは、指定のコンテキストの音声の最後の目的地 - 通常はあなたのデバイスのスピーカーを表します。OfflineAudioContextと共に使えば、オーディオデータを「録音」するノードにもできます。

-
- -

AudioDestinationNodeには出力はなく(出力があれば、これ以上AudioNodeに音声を結びつけることができません)、入力が1つあります。入力チャンネルの数は、0からmaxChannelCount変数の間である必要があり、そうでなければ例外が発生します。

- -

指定のAudioContextAudioDestinationNodeは{{domxref("AudioContext.destination")}}プロパティで取得できます。

- - - - - - - - - - - - - - - - - - - - - - - - -
Number of inputs1
Number of outputs0
Channel count mode"explicit"
Channel count2
Channel interpretation"speakers"
- -

プロパティ

- -

親の{{domxref("AudioNode")}}のプロパティを継承しています。

- -
-
{{domxref("AudioDestinationNode.maxChannelCount")}}
-
unsigned longで表された物理的なデバイスが扱えるチャンネルの最大数
-
- -

メソッド

- -

固有のメソッドはありません。親の{{domxref("AudioNode")}}のメソッドを継承しています。

- -

- -

AudioDestinationNodeの設定には複雑なことはありません - デフォルトでユーザのシステム(例:スピーカー)を表しています。よって、数行のコードを書くだけで内部の音声を接続することができます:

- -
var audioCtx = new AudioContext();
-var source = audioCtx.createMediaElementSource(myMediaElement);
-source.connect(gainNode);
-gainNode.connect(audioCtx.destination);
- -

完全な実装は、MDN Web AudioのVoice-change-o-maticViolent Thereminのようなサンプルを参考にしてください。

- -

仕様

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('Web Audio API', '#the-audiodestinationnode-interface', 'AudioDestinationNode')}}{{Spec2('Web Audio API')}}
- -

ブラウザ互換性

- -

{{Compat("api.AudioDestinationNode")}}

- -

参考

- - diff --git a/files/ja/web/api/audiodestinationnode/index.md b/files/ja/web/api/audiodestinationnode/index.md new file mode 100644 index 00000000000000..3e1298b3db4052 --- /dev/null +++ b/files/ja/web/api/audiodestinationnode/index.md @@ -0,0 +1,57 @@ +--- +title: AudioDestinationNode +slug: Web/API/AudioDestinationNode +translation_of: Web/API/AudioDestinationNode +--- +{{APIRef("Web Audio API")}} + +`AudioDestinationNode`インターフェースは、指定のコンテキストの音声の最後の目的地 - 通常はあなたのデバイスのスピーカーを表します。`OfflineAudioContext`と共に使えば、オーディオデータを「録音」するノードにもできます。 + +`AudioDestinationNode`には出力はなく(出力が**あれば**、これ以上 AudioNode に音声を結びつけることができません)、入力が 1 つあります。入力チャンネルの数は、0 から`maxChannelCount`変数の間である必要があり、そうでなければ例外が発生します。 + +指定の`AudioContext`の`AudioDestinationNode`は{{domxref("AudioContext.destination")}}プロパティで取得できます。 + +| Number of inputs | `1` | +| ---------------------- | ------------ | +| Number of outputs | `0` | +| Channel count mode | `"explicit"` | +| Channel count | `2` | +| Channel interpretation | `"speakers"` | + +## プロパティ + +_親の{{domxref("AudioNode")}}のプロパティを継承しています。_ + +- {{domxref("AudioDestinationNode.maxChannelCount")}} + - : `unsigned long`で表された物理的なデバイスが扱えるチャンネルの最大数 + +## メソッド + +*固有のメソッドはありません。親の\_\_{{domxref("AudioNode")}}*のメソッドを継承しています。 + +## 例 + +`AudioDestinationNode`の設定には複雑なことはありません - デフォルトでユーザのシステム(例:スピーカー)を表しています。よって、数行のコードを書くだけで内部の音声を接続することができます: + +```js +var audioCtx = new AudioContext(); +var source = audioCtx.createMediaElementSource(myMediaElement); +source.connect(gainNode); +gainNode.connect(audioCtx.destination); +``` + +完全な実装は、MDN Web Audio の[Voice-change-o-matic](http://mdn.github.io/voice-change-o-matic/)や[Violent Theremin](http://mdn.github.io/violent-theremin/)のようなサンプルを参考にしてください。 + +## 仕様 + +| Specification | Status | Comment | +| ---------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ | ------- | +| {{SpecName('Web Audio API', '#the-audiodestinationnode-interface', 'AudioDestinationNode')}} | {{Spec2('Web Audio API')}} | | + +## ブラウザ互換性 + +{{Compat("api.AudioDestinationNode")}} + +## 参考 + +- [Using the Web Audio API](/ja/docs/Web/API/Web_Audio_API/Using_Web_Audio_API) diff --git a/files/ja/web/api/audiodestinationnode/maxchannelcount/index.html b/files/ja/web/api/audiodestinationnode/maxchannelcount/index.html deleted file mode 100644 index 495d41038b8117..00000000000000 --- a/files/ja/web/api/audiodestinationnode/maxchannelcount/index.html +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: AudioDestinationNode.maxChannelCount -slug: Web/API/AudioDestinationNode/maxChannelCount -translation_of: Web/API/AudioDestinationNode/maxChannelCount ---- -

{{ APIRef("Web Audio API") }}

- -
-

{{ domxref("AudioDestinationNode") }}インターフェースのmaxchannelCountプロパティは、unsigned longで表された物理的なデバイスが扱えるチャンネルの最大数です。

- -

{{domxref("AudioNode.channelCount")}}プロパティは0からこの値の間(両端を含む)です。もし{{domxref("OfflineAudioContext")}}のようにmaxChannelCountが0ならば、チャンネルの数は変えられません。

-
- -

構文

- -
var audioCtx = new AudioContext();
-var myDestination = audioCtx.destination;
-myDestination.maxChannelCount = 2;
-
- -

- -

unsigned long

- -

- -

次の例は単純な設定です。AudioDestinationNodemaxChannelCountを2にしています。

- -
var audioCtx = new AudioContext();
-var source = audioCtx.createMediaElementSource(myMediaElement);
-source.connect(gainNode);
-audioCtx.destination.maxChannelCount = 2;
-gainNode.connect(audioCtx.destination);
- -

完全な実装は、MDN Web AudioのVoice-change-o-maticViolent Thereminのようなサンプルを参考にしてください。

- -

使用

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('Web Audio API', '#widl-AudioDestinationNode-maxChannelCount', 'maxChannelCount')}}{{Spec2('Web Audio API')}}
- -

ブラウザ互換性

- -

{{Compat("api.AudioDestinationNode.maxChannelCount")}}

- -

参考

- - diff --git a/files/ja/web/api/audiodestinationnode/maxchannelcount/index.md b/files/ja/web/api/audiodestinationnode/maxchannelcount/index.md new file mode 100644 index 00000000000000..ac0135de1dbb54 --- /dev/null +++ b/files/ja/web/api/audiodestinationnode/maxchannelcount/index.md @@ -0,0 +1,50 @@ +--- +title: AudioDestinationNode.maxChannelCount +slug: Web/API/AudioDestinationNode/maxChannelCount +translation_of: Web/API/AudioDestinationNode/maxChannelCount +--- +{{ APIRef("Web Audio API") }} + +{{ domxref("AudioDestinationNode") }}インターフェースの`maxchannelCount`プロパティは、`unsigned long`で表された物理的なデバイスが扱えるチャンネルの最大数です。 + +{{domxref("AudioNode.channelCount")}}プロパティは 0 からこの値の間(両端を含む)です。もし{{domxref("OfflineAudioContext")}}のように`maxChannelCount`が 0 ならば、チャンネルの数は変えられません。 + +## 構文 + +```js +var audioCtx = new AudioContext(); +var myDestination = audioCtx.destination; +myDestination.maxChannelCount = 2; +``` + +### 値 + +`unsigned long` + +## 例 + +次の例は単純な設定です。`AudioDestinationNode`の`maxChannelCount`を 2 にしています。 + +```js +var audioCtx = new AudioContext(); +var source = audioCtx.createMediaElementSource(myMediaElement); +source.connect(gainNode); +audioCtx.destination.maxChannelCount = 2; +gainNode.connect(audioCtx.destination); +``` + +完全な実装は、MDN Web Audio の[Voice-change-o-matic](http://mdn.github.io/voice-change-o-matic/)や[Violent Theremin](http://mdn.github.io/violent-theremin/)のようなサンプルを参考にしてください。 + +## 使用 + +| Specification | Status | Comment | +| ---------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ | ------- | +| {{SpecName('Web Audio API', '#widl-AudioDestinationNode-maxChannelCount', 'maxChannelCount')}} | {{Spec2('Web Audio API')}} | | + +## ブラウザ互換性 + +{{Compat("api.AudioDestinationNode.maxChannelCount")}} + +## 参考 + +- [Using the Web Audio API](/ja/docs/Web_Audio_API/Using_Web_Audio_API) diff --git a/files/ja/web/api/audioscheduledsourcenode/index.html b/files/ja/web/api/audioscheduledsourcenode/index.html deleted file mode 100644 index ef71552b5654b6..00000000000000 --- a/files/ja/web/api/audioscheduledsourcenode/index.html +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: AudioScheduledSourceNode -slug: Web/API/AudioScheduledSourceNode -tags: - - API - - Audio - - AudioScheduledSourceNode - - Interface - - Media - - Reference - - Web Audio API - - sound - - インターフェイス -translation_of: Web/API/AudioScheduledSourceNode ---- -
{{APIRef("Web Audio API")}}
- -
AudioScheduledSourceNode インターフェース (Web Audio APIの一部分) は、オーディオソースノード各種の親インターフェースであり、必要に応じ、指定された時間で開始や停止を行う機能を持ちます。具体的には、このインタフェースでは、{{domxref("AudioScheduledSourceNode.start", "start()")}} や、{{domxref("AudioScheduledSourceNode.stop", "stop()")}} メソッドの他、{{domxref("AudioScheduledSourceNode.onended", "onended")}} イベントハンドラーを定義しています。
- -
- -
-

AudioScheduledSourceNode オブジェクトは、直接作成することはできません。
- かわりに、{{domxref("AudioBufferSourceNode")}} や、{{domxref("OscillatorNode")}}、または {{domxref("ConstantSourceNode")}} を使用してください。

-
- -

特に明記しない限り、AudioScheduledSourceNode をベースにしたノードは、再生されていない時 (つまり、start() の前や、stop() の後) は、無音を出力します。無音は、値がゼロ (0) であるサンプルストリームを、常に流し続けることで表現されています。

- -

プロパティ

- -

親インターフェース、{{domxref("AudioNode")}} のプロパティ継承に加え、以下のプロパティがあります。

- -

イベントハンドラ

- -
-
{{domxref("AudioScheduledSourceNode.onended", "onended")}}
-
{{event("ended")}} イベントが発生したときに呼び出されるメソッドです。ノードが再生を終えたことを示します。
-
- -

メソッド

- -

親インターフェース、{{domxref("AudioNode")}} のメソッド継承に加え、以下のメソッドがあります。

- -
-
{{domxref("AudioScheduledSourceNode.start", "start()")}}
-
指定した時刻に、ノードが特定の音を再生するよう、スケジュールします。時間を指定しない場合、ノードはすぐに再生を開始します。
-
{{domxref("AudioScheduledSourceNode.stop", "stop()")}}
-
指定した時刻に、ノードの再生を停止するよう、スケジュールします。時間を指定しない場合、ノードはすぐに停止します。
-
- -

Specification

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('Web Audio API', '#idl-def-AudioScheduledSourceNode', 'AudioScheduledSourceNode')}}{{Spec2('Web Audio API')}}
- -

Browser compatibility

- -

{{Compat("api.AudioScheduledSourceNode")}}

- -

See also

- - diff --git a/files/ja/web/api/audioscheduledsourcenode/index.md b/files/ja/web/api/audioscheduledsourcenode/index.md new file mode 100644 index 00000000000000..5cc38123001256 --- /dev/null +++ b/files/ja/web/api/audioscheduledsourcenode/index.md @@ -0,0 +1,54 @@ +--- +title: AudioScheduledSourceNode +slug: Web/API/AudioScheduledSourceNode +tags: + - API + - Audio + - AudioScheduledSourceNode + - Interface + - Media + - Reference + - Web Audio API + - sound + - インターフェイス +translation_of: Web/API/AudioScheduledSourceNode +--- +{{APIRef("Web Audio API")}}AudioScheduledSourceNode インターフェース (Web Audio API の一部分) は、オーディオソースノード各種の親インターフェースであり、必要に応じ、指定された時間で開始や停止を行う機能を持ちます。具体的には、このインタフェースでは、{{domxref("AudioScheduledSourceNode.start", "start()")}} や、{{domxref("AudioScheduledSourceNode.stop", "stop()")}} メソッドの他、{{domxref("AudioScheduledSourceNode.onended", "onended")}} イベントハンドラーを定義しています。 + +> **Note:** AudioScheduledSourceNode オブジェクトは、直接作成することはできません。 +> かわりに、{{domxref("AudioBufferSourceNode")}} や、{{domxref("OscillatorNode")}}、または {{domxref("ConstantSourceNode")}} を使用してください。 + +特に明記しない限り、AudioScheduledSourceNode をベースにしたノードは、再生されていない時 (つまり、start() の前や、stop() の後) は、無音を出力します。無音は、値がゼロ (0) であるサンプルストリームを、常に流し続けることで表現されています。 + +## プロパティ + +親インターフェース、_{{domxref("AudioNode")}}_ のプロパティ継承に加え、以下のプロパティがあります。 + +### イベントハンドラ + +- {{domxref("AudioScheduledSourceNode.onended", "onended")}} + - : {{event("ended")}} イベントが発生したときに呼び出されるメソッドです。ノードが再生を終えたことを示します。 + +## メソッド + +親インターフェース、_{{domxref("AudioNode")}}_ のメソッド継承に加え、以下のメソッドがあります。 + +- {{domxref("AudioScheduledSourceNode.start", "start()")}} + - : 指定した時刻に、ノードが特定の音を再生するよう、スケジュールします。時間を指定しない場合、ノードはすぐに再生を開始します。 +- {{domxref("AudioScheduledSourceNode.stop", "stop()")}} + - : 指定した時刻に、ノードの再生を停止するよう、スケジュールします。時間を指定しない場合、ノードはすぐに停止します。 + +## Specification + +| Specification | Status | Comment | +| ---------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ | ------- | +| {{SpecName('Web Audio API', '#idl-def-AudioScheduledSourceNode', 'AudioScheduledSourceNode')}} | {{Spec2('Web Audio API')}} | | + +## Browser compatibility + +{{Compat("api.AudioScheduledSourceNode")}} + +## See also + +- [Using the Web Audio API](/ja/docs/Web/API/Web_Audio_API/Using_Web_Audio_API) +- {{domxref("AudioNode")}} diff --git a/files/ja/web/api/audiotracklist/addtrack_event/index.html b/files/ja/web/api/audiotracklist/addtrack_event/index.html deleted file mode 100644 index 311fff9781e8d1..00000000000000 --- a/files/ja/web/api/audiotracklist/addtrack_event/index.html +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: 'AudioTrackList: addtrack イベント' -slug: Web/API/AudioTrackList/addtrack_event -tags: - - Audio​Track​List - - Event - - addTrack - - events -translation_of: Web/API/AudioTrackList/addtrack_event ---- -
{{APIRef}}
- -

addtrack イベントは、トラックが {{domxref("AudioTrackList")}} に追加されたときに発生します。

- - - - - - - - - - - - - - - - - - - - -
バブリングなし
キャンセル不可
インターフェイス{{domxref("TrackEvent")}}
イベントハンドラプロパティonaddtrack
- -

- -

AddEventListener() を使用する場合

- -
const videoElement = document.querySelector('video');
-
-videoElement.audioTracks.addEventListener('addtrack', (event) => {
-  console.log(`Audio track: ${event.track.label} added`);
-});
- -

onaddtrack イベントハンドラプロパティを使用する場合

- -
const videoElement = document.querySelector('video');
-
-videoElement.audioTracks.onaddtrack = (event) => {
-  console.log(`Audio track: ${event.track.label} added`);
-};
- -

仕様

- - - - - - - - - - - - -
仕様状態
{{SpecName('HTML WHATWG', 'media.html#event-media-addtrack', 'addtrack')}}{{Spec2('HTML WHATWG')}}
- -

ブラウザーの互換性

- - - -

{{Compat("api.AudioTrackList.addtrack_event")}}

- -

関連情報

- - diff --git a/files/ja/web/api/audiotracklist/addtrack_event/index.md b/files/ja/web/api/audiotracklist/addtrack_event/index.md new file mode 100644 index 00000000000000..a514ccc4d04770 --- /dev/null +++ b/files/ja/web/api/audiotracklist/addtrack_event/index.md @@ -0,0 +1,59 @@ +--- +title: 'AudioTrackList: addtrack イベント' +slug: Web/API/AudioTrackList/addtrack_event +tags: + - Audio​Track​List + - Event + - addTrack + - events +translation_of: Web/API/AudioTrackList/addtrack_event +--- +{{APIRef}} + +`addtrack` イベントは、トラックが {{domxref("AudioTrackList")}} に追加されたときに発生します。 + +| バブリング | なし | +| -------------------------- | ---------------------------------------------------------- | +| キャンセル | 不可 | +| インターフェイス | {{domxref("TrackEvent")}} | +| イベントハンドラプロパティ | [`onaddtrack`](/ja/docs/Web/API/AudioTrackList/onaddtrack) | + +## 例 + +`AddEventListener()` を使用する場合 + +```js +const videoElement = document.querySelector('video'); + +videoElement.audioTracks.addEventListener('addtrack', (event) => { + console.log(`Audio track: ${event.track.label} added`); +}); +``` + +`onaddtrack` イベントハンドラプロパティを使用する場合 + +```js +const videoElement = document.querySelector('video'); + +videoElement.audioTracks.onaddtrack = (event) => { + console.log(`Audio track: ${event.track.label} added`); +}; +``` + +## 仕様 + +| 仕様 | 状態 | +| ---------------------------------------------------------------------------------------------------- | -------------------------------- | +| {{SpecName('HTML WHATWG', 'media.html#event-media-addtrack', 'addtrack')}} | {{Spec2('HTML WHATWG')}} | + +## ブラウザーの互換性 + +{{Compat("api.AudioTrackList.addtrack_event")}} + +## 関連情報 + +- 関連イベント: [`removetrack`](/ja/docs/Web/API/AudioTrackList/removetrack_event), [`change`](/ja/docs/Web/API/AudioTrackList/change_event) +- [`VideoTrackList`](/ja/docs/Web/API/VideoTrackList) 対象でのこのイベント: [`addtrack`](/ja/docs/Web/API/VideoTrackList/addtrack_event) +- [`MediaStream`](/ja/docs/Web/API/MediaStream) 対象でのこのイベント: [`addtrack`](/ja/docs/Web/API/MediaStream/addtrack_event) +- [Media Streams API](/ja/docs/Web/API/Media_Streams_API) +- [WebRTC API](/ja/docs/Web/API/WebRTC_API) diff --git a/files/ja/web/api/audiotracklist/change_event/index.html b/files/ja/web/api/audiotracklist/change_event/index.html deleted file mode 100644 index cea87015a00ace..00000000000000 --- a/files/ja/web/api/audiotracklist/change_event/index.html +++ /dev/null @@ -1,96 +0,0 @@ ---- -title: 'AudioTrackList: change イベント' -slug: Web/API/AudioTrackList/change_event -tags: - - API - - AudioTrackList - - Change - - Event - - HTML API -translation_of: Web/API/AudioTrackList/change_event ---- -
{{APIRef}}
- -

change イベントは、音声トラックが有効または無効になったとき(トラックの enabled プロパティを変更したときなど)に発生します。

- - - - - - - - - - - - - - - - - - - - -
バブリングなし
キャンセル不可
インターフェイス{{domxref("Event")}}
イベントハンドラプロパティ{{domxref("AudioTrackList/onchange", "onchange")}}
- -

- -

addEventListener() を使用する場合

- -
const videoElement = document.querySelector('video');
-videoElement.audioTracks.addEventListener('change', (event) => {
-    console.log(`'${event.type}' イベント発生`);
-});
-
-// `enabled` の値を変更すると `change` イベントを引き起こします
-const toggleTrackButton = document.querySelector('.toggle-track');
-toggleTrackButton.addEventListener('click', () => {
-  const track = videoElement.audioTracks[0];
-  track.enabled = !track.enabled;
-});
-
- -

onchange イベントハンドラプロパティを使用する場合

- -
const videoElement = document.querySelector('video');
-videoElement.audioTracks.onchange = (event) => {
-    console.log(`'${event.type}' イベント発生`);
-};
-
-// `enabled` の値を変更すると `change` イベントを引き起こします
-const toggleTrackButton = document.querySelector('.toggle-track');
-toggleTrackButton.addEventListener('click', () => {
-  const track = videoElement.audioTracks[0];
-  track.enabled = !track.enabled;
-});
- -

仕様書

- - - - - - - - - - - - - - -
仕様書状態
{{SpecName('HTML WHATWG', 'media.html#event-media-change', 'change')}}{{Spec2('HTML WHATWG')}}
- -

ブラウザーの互換性

- -

{{Compat("api.AudioTrackList.change_event")}}

- -

関連情報

- - diff --git a/files/ja/web/api/audiotracklist/change_event/index.md b/files/ja/web/api/audiotracklist/change_event/index.md new file mode 100644 index 00000000000000..440ee39d2f65e5 --- /dev/null +++ b/files/ja/web/api/audiotracklist/change_event/index.md @@ -0,0 +1,71 @@ +--- +title: 'AudioTrackList: change イベント' +slug: Web/API/AudioTrackList/change_event +tags: + - API + - AudioTrackList + - Change + - Event + - HTML API +translation_of: Web/API/AudioTrackList/change_event +--- +{{APIRef}} + +`change` イベントは、音声トラックが有効または無効になったとき(トラックの [`enabled`](/ja/docs/Web/API/AudioTrack/enabled) プロパティを変更したときなど)に発生します。 + +| バブリング | なし | +| -------------------------- | -------------------------------------------------------------------- | +| キャンセル | 不可 | +| インターフェイス | {{domxref("Event")}} | +| イベントハンドラプロパティ | {{domxref("AudioTrackList/onchange", "onchange")}} | + +## 例 + +`addEventListener()` を使用する場合 + +```js +const videoElement = document.querySelector('video'); +videoElement.audioTracks.addEventListener('change', (event) => { + console.log(`'${event.type}' イベント発生`); +}); + +// `enabled` の値を変更すると `change` イベントを引き起こします +const toggleTrackButton = document.querySelector('.toggle-track'); +toggleTrackButton.addEventListener('click', () => { + const track = videoElement.audioTracks[0]; + track.enabled = !track.enabled; +}); +``` + +`onchange` イベントハンドラプロパティを使用する場合 + +```js +const videoElement = document.querySelector('video'); +videoElement.audioTracks.onchange = (event) => { + console.log(`'${event.type}' イベント発生`); +}; + +// `enabled` の値を変更すると `change` イベントを引き起こします +const toggleTrackButton = document.querySelector('.toggle-track'); +toggleTrackButton.addEventListener('click', () => { + const track = videoElement.audioTracks[0]; + track.enabled = !track.enabled; +}); +``` + +## 仕様書 + +| 仕様書 | 状態 | +| -------------------------------------------------------------------------------------------- | -------------------------------- | +| {{SpecName('HTML WHATWG', 'media.html#event-media-change', 'change')}} | {{Spec2('HTML WHATWG')}} | + +## ブラウザーの互換性 + +{{Compat("api.AudioTrackList.change_event")}} + +## 関連情報 + +- 関連イベント: [`addtrack`](/ja/docs/Web/API/AudioTrackList/addtrack_event), [`removetrack`](/ja/docs/Web/API/AudioTrackList/removetrack_event) +- [`VideoTrackList`](/ja/docs/Web/API/VideoTrackList) 対象でのこのイベント: [`change`](/ja/docs/Web/API/VideoTrackList/change_event) +- [Media Streams API](/ja/docs/Web/API/Media_Streams_API) +- [WebRTC API](/ja/docs/Web/API/WebRTC_API) diff --git a/files/ja/web/api/audiotracklist/gettrackbyid/index.html b/files/ja/web/api/audiotracklist/gettrackbyid/index.html deleted file mode 100644 index e7d4ddcf7335b1..00000000000000 --- a/files/ja/web/api/audiotracklist/gettrackbyid/index.html +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: AudioTrackList.getTrackById() -slug: Web/API/AudioTrackList/getTrackById -tags: - - API - - Audio - - AudioTrackList - - HTML DOM - - Media - - Method - - Reference - - Track ID - - Track List - - Tracks - - getTrackById - - id - - track -translation_of: Web/API/AudioTrackList/getTrackById ---- -
{{APIRef("HTML DOM")}}
- -

{{domxref("AudioTrackList")}}getTrackById() メソッドは、指定された文字列と {{domxref("AudioTrack.id", "id")}} が一致するトラックリストから最初の {{domxref("AudioTrack")}} オブジェクトを返します。 ID 文字列がわかっていれば、これで特定のトラックを見つけることができます。

- -

構文

- -
var theTrack = AudioTrackList.getTrackById(id);
- -

パラメーター

- -
-
id
-
トラックリスト内で検索するトラックの ID を示す {{domxref("DOMString")}}。
-
- -

戻り値

- -

指定された文字列に一致する id を持つ AudioTrackList 内で見つかった最初のトラックを示す {{domxref("AudioTrack")}} オブジェクト。 一致が見つからない場合、このメソッドは null を返します。

- -

トラックは自然な順序で検索されます。 つまり、メディアリソース自体によって定義された順序で、またはリソースが順序を定義していない場合は、メディアリソースによってトラックが宣言される相対的な順序です。

- -

- -

この例は、映画をゲーム内のカットシーンまたは他の重要なセットのピースとして使用する架空のゲームを示唆しています。 各映画には、各キャラクターに1つの音声トラックがあり、音楽、効果音などにも1つの音声トラックがあります。 この関数により、ゲーム内の出来事に基づいて映画の演技を調整するために、ゲームは特定のキャラクターの音声を無効にすることができます。 キャラクターの対話が適切でない場合は、省略されます。 明らかにそれは作品を作るためにいくつかの巧妙なグラフィックデザインを必要とするでしょう、しかし...これは架空のゲームです。

- -
function disableCharacter(videoElem, characterName) {
-  videoElem.audioTracks.getTrackById(characterName).enabled = false;
-}
-
- -

この短い関数は、{{domxref("HTMLMediaElement.audioTracks")}} を使用して動画の音声トラックを含む {{domxref("AudioTrackList")}} を取得し、それから getTrackById() を呼び出してキャラクターの名前を指定します。 結果としてトラックの音声は、その {{domxref("AudioTrack.enabled", "enabled")}} フラグを false に設定することで無効になります。

- -

仕様

- - - - - - - - - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('HTML WHATWG', '#dom-audiotracklist-gettrackbyid', 'AudioTrackList.getTrackById()')}}{{Spec2('HTML WHATWG')}}
{{SpecName('HTML5 W3C', 'embedded-content-0.html#dom-audiotracklist-getTrackById', 'AudioTrackList.getTrackById()')}}{{Spec2('HTML5 W3C')}}
- -

ブラウザーの互換性

- - - -

{{Compat("api.AudioTrackList.getTrackById")}}

diff --git a/files/ja/web/api/audiotracklist/gettrackbyid/index.md b/files/ja/web/api/audiotracklist/gettrackbyid/index.md new file mode 100644 index 00000000000000..0b53a8a3b09f8a --- /dev/null +++ b/files/ja/web/api/audiotracklist/gettrackbyid/index.md @@ -0,0 +1,60 @@ +--- +title: AudioTrackList.getTrackById() +slug: Web/API/AudioTrackList/getTrackById +tags: + - API + - Audio + - AudioTrackList + - HTML DOM + - Media + - Method + - Reference + - Track ID + - Track List + - Tracks + - getTrackById + - id + - track +translation_of: Web/API/AudioTrackList/getTrackById +--- +{{APIRef("HTML DOM")}} + +**{{domxref("AudioTrackList")}}** の **`getTrackById()`** メソッドは、指定された文字列と {{domxref("AudioTrack.id", "id")}} が一致するトラックリストから最初の {{domxref("AudioTrack")}} オブジェクトを返します。 ID 文字列がわかっていれば、これで特定のトラックを見つけることができます。 + +## 構文 + + var theTrack = AudioTrackList.getTrackById(id); + +### パラメーター + +- `id` + - : トラックリスト内で検索するトラックの ID を示す {{domxref("DOMString")}}。 + +### 戻り値 + +指定された文字列に一致する `id` を持つ `AudioTrackList` 内で見つかった最初のトラックを示す {{domxref("AudioTrack")}} オブジェクト。 一致が見つからない場合、このメソッドは `null` を返します。 + +トラックは自然な順序で検索されます。 つまり、メディアリソース自体によって定義された順序で、またはリソースが順序を定義していない場合は、メディアリソースによってトラックが宣言される相対的な順序です。 + +## 例 + +この例は、映画をゲーム内のカットシーンまたは他の重要なセットのピースとして使用する架空のゲームを示唆しています。 各映画には、各キャラクターに 1 つの音声トラックがあり、音楽、効果音などにも 1 つの音声トラックがあります。 この関数により、ゲーム内の出来事に基づいて映画の演技を調整するために、ゲームは特定のキャラクターの音声を無効にすることができます。 キャラクターの対話が適切でない場合は、省略されます。 明らかにそれは作品を作るためにいくつかの巧妙なグラフィックデザインを必要とするでしょう、しかし...これは架空のゲームです。 + +```js +function disableCharacter(videoElem, characterName) { + videoElem.audioTracks.getTrackById(characterName).enabled = false; +} +``` + +この短い関数は、{{domxref("HTMLMediaElement.audioTracks")}} を使用して動画の音声トラックを含む {{domxref("AudioTrackList")}} を取得し、それから `getTrackById()` を呼び出してキャラクターの名前を指定します。 結果としてトラックの音声は、その {{domxref("AudioTrack.enabled", "enabled")}} フラグを `false` に設定することで無効になります。 + +## 仕様 + +| 仕様 | 状態 | コメント | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------- | -------- | +| {{SpecName('HTML WHATWG', '#dom-audiotracklist-gettrackbyid', 'AudioTrackList.getTrackById()')}} | {{Spec2('HTML WHATWG')}} | | +| {{SpecName('HTML5 W3C', 'embedded-content-0.html#dom-audiotracklist-getTrackById', 'AudioTrackList.getTrackById()')}} | {{Spec2('HTML5 W3C')}} | | + +## ブラウザーの互換性 + +{{Compat("api.AudioTrackList.getTrackById")}} diff --git a/files/ja/web/api/audiotracklist/index.html b/files/ja/web/api/audiotracklist/index.html deleted file mode 100644 index a77b44a96cc41a..00000000000000 --- a/files/ja/web/api/audiotracklist/index.html +++ /dev/null @@ -1,118 +0,0 @@ ---- -title: AudioTrackList -slug: Web/API/AudioTrackList -tags: - - API - - Audio - - AudioTrackList - - HTML DOM - - Interface - - Media - - Reference - - Track List - - Tracks - - list - - インターフェイス -translation_of: Web/API/AudioTrackList ---- -
{{APIRef("HTML DOM")}}
- -

AudioTrackList インターフェイスは、所与の HTML メディア要素内に含まれる音声トラックのリストを表すために使用します。 各トラックはリスト内の別々の {{domxref("AudioTrack")}} オブジェクトで表します。

- -

{{domxref('HTMLMediaElement.audioTracks')}} を使用してこのオブジェクトのインスタンスを取得します。 個々のトラックは、配列構文を使用してアクセスできます。

- -

プロパティ

- -

このインターフェイスは、その親インターフェイスである {{domxref("EventTarget")}} からもプロパティを継承します。

- -
-
{{domxref("AudioTrackList.length", "length")}} {{ReadOnlyInline}}
-
リスト内のトラック数
-
- -

イベントハンドラー

- -
-
{{domxref("AudioTrackList.onaddtrack", "onaddtrack")}}
-
{{event("addtrack")}} イベントが発生したときに呼び出されるイベントハンドラー。 新しい音声トラックがメディア要素に追加されたことを示します。
-
{{domxref("AudioTrackList.onchange", "onchange")}}
-
{{event("change")}} イベントが発生したときに呼び出されるイベントハンドラー。 これは、1つ以上のトラックが {{domxref("AudioTrack.enabled", "enabled")}} フラグの変更により有効または無効になったときに発生します。
-
{{domxref("AudioTrackList.onremovetrack", "onremovetrack")}}
-
{{event("removetrack")}} イベントが発生したときに呼び出されるイベントハンドラー。 音声トラックがメディア要素から取り除かれたことを示します。
-
- -

メソッド

- -

このインターフェイスは、その親インターフェイスである {{domxref("EventTarget")}} からもメソッドを継承しています。

- -
-
{{domxref("AudioTrackList.getTrackById", "getTrackById()")}}
-
指定された文字列と一致する {{domxref("AudioTrack.id", "id")}} を持つ AudioTrackList 内で見つかった {{domxref("AudioTrack")}} を返します。 一致が見つからない場合は、null を返します。
-
- -

イベント

- -
-
{{domxref("AudioTrackList.addtrack_event", "addtrack")}}
-
新しい音声トラックがメディア要素に追加されたときに発生します。
- {{domxref("AudioTrackList.onaddtrack", "onaddtrack")}} プロパティからも利用できます。
-
{{domxref("AudioTrackList.change_event", "change")}}
-
トラックが有効または無効にされたときに発生します。
- {{domxref("AudioTrackList.onchange", "onchange")}} プロパティからも利用できます。
-
{{domxref("AudioTrackList.removetrack_event", "removetrack")}}
-
音声トラックがメディア要素から取り除かれたときに発生します。
- {{domxref("AudioTrackList.onremovetrack", "onremovetrack")}} プロパティからも利用できます。
-
- -

使用上の注意

- -

AudioTrackList を使用すると、メディア要素にある音声トラックに直接アクセスできるだけでなく、{{event("addtrack")}} イベントと {{event("removetrack")}} イベントにイベントハンドラを設定できるため、メディア要素のストリームにトラックが追加されたときまたは取り除かれたときに検出できます。 詳細と例については、{{domxref("AudioTrackList.onaddtrack", "onaddtrack")}} と {{domxref("AudioTrackList.onremovetrack", "onremovetrack")}} を参照してください。

- -

- -

メディア要素の音声トラックリストの取得

- -

メディア要素の {{domxref("AudioTrackList")}} を取得するには、その {{domxref("HTMLMediaElement.audioTracks", "audioTracks")}} プロパティを使用します。

- -
var audioTracks = document.querySelector("video").audioTracks;
- -

トラック数の変化の監視

- -

この例では、利用可能なチャンネル数に関する情報を表示するアプリがあります。 それを最新に保つために、{{event("addtrack")}} イベントと {{event("removetrack")}} イベントのためのハンドラを設定しています。

- -
audioTracks.onaddtrack = updateTrackCount;
-audioTracks.onremovetrack = updateTrackCount;
-
-function updateTrackCount(event) {
-  trackCount = audioTracks.length;
-  drawTrackCountIndicator(trackCount);
-}
-
- -

仕様書

- - - - - - - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName('HTML WHATWG', 'media.html#audiotracklist', 'AudioTrackList')}}{{Spec2('HTML WHATWG')}}
{{SpecName('HTML5 W3C', 'embedded-content-0.html#audiotracklist', 'AudioTrackList')}}{{Spec2('HTML5 W3C')}}
- -

ブラウザーの互換性

- -

{{Compat("api.AudioTrackList")}}

diff --git a/files/ja/web/api/audiotracklist/index.md b/files/ja/web/api/audiotracklist/index.md new file mode 100644 index 00000000000000..9595b6cb76e134 --- /dev/null +++ b/files/ja/web/api/audiotracklist/index.md @@ -0,0 +1,96 @@ +--- +title: AudioTrackList +slug: Web/API/AudioTrackList +tags: + - API + - Audio + - AudioTrackList + - HTML DOM + - Interface + - Media + - Reference + - Track List + - Tracks + - list + - インターフェイス +translation_of: Web/API/AudioTrackList +--- +{{APIRef("HTML DOM")}} + +**`AudioTrackList`** インターフェイスは、所与の HTML メディア要素内に含まれる音声トラックのリストを表すために使用します。 各トラックはリスト内の別々の {{domxref("AudioTrack")}} オブジェクトで表します。 + +{{domxref('HTMLMediaElement.audioTracks')}} を使用してこのオブジェクトのインスタンスを取得します。 個々のトラックは、配列構文を使用してアクセスできます。 + +## プロパティ + +_このインターフェイスは、その親インターフェイスである {{domxref("EventTarget")}} からもプロパティを継承します。_ + +- {{domxref("AudioTrackList.length", "length")}} {{ReadOnlyInline}} + - : リスト内のトラック数 + +## イベントハンドラー + +- {{domxref("AudioTrackList.onaddtrack", "onaddtrack")}} + - : {{event("addtrack")}} イベントが発生したときに呼び出されるイベントハンドラー。 新しい音声トラックがメディア要素に追加されたことを示します。 +- {{domxref("AudioTrackList.onchange", "onchange")}} + - : {{event("change")}} イベントが発生したときに呼び出されるイベントハンドラー。 これは、1 つ以上のトラックが {{domxref("AudioTrack.enabled", "enabled")}} フラグの変更により有効または無効になったときに発生します。 +- {{domxref("AudioTrackList.onremovetrack", "onremovetrack")}} + - : {{event("removetrack")}} イベントが発生したときに呼び出されるイベントハンドラー。 音声トラックがメディア要素から取り除かれたことを示します。 + +## メソッド + +_このインターフェイスは、その親インターフェイスである {{domxref("EventTarget")}} からもメソッドを継承しています。_ + +- {{domxref("AudioTrackList.getTrackById", "getTrackById()")}} + - : 指定された文字列と一致する {{domxref("AudioTrack.id", "id")}} を持つ `AudioTrackList` 内で見つかった {{domxref("AudioTrack")}} を返します。 一致が見つからない場合は、`null` を返します。 + +## イベント + +- {{domxref("AudioTrackList.addtrack_event", "addtrack")}} + - : 新しい音声トラックがメディア要素に追加されたときに発生します。 + {{domxref("AudioTrackList.onaddtrack", "onaddtrack")}} プロパティからも利用できます。 +- {{domxref("AudioTrackList.change_event", "change")}} + - : トラックが有効または無効にされたときに発生します。 + {{domxref("AudioTrackList.onchange", "onchange")}} プロパティからも利用できます。 +- {{domxref("AudioTrackList.removetrack_event", "removetrack")}} + - : 音声トラックがメディア要素から取り除かれたときに発生します。 + {{domxref("AudioTrackList.onremovetrack", "onremovetrack")}} プロパティからも利用できます。 + +## 使用上の注意 + +`AudioTrackList` を使用すると、メディア要素にある音声トラックに直接アクセスできるだけでなく、{{event("addtrack")}} イベントと {{event("removetrack")}} イベントにイベントハンドラを設定できるため、メディア要素のストリームにトラックが追加されたときまたは取り除かれたときに検出できます。 詳細と例については、{{domxref("AudioTrackList.onaddtrack", "onaddtrack")}} と {{domxref("AudioTrackList.onremovetrack", "onremovetrack")}} を参照してください。 + +## 例 + +### メディア要素の音声トラックリストの取得 + +メディア要素の {{domxref("AudioTrackList")}} を取得するには、その {{domxref("HTMLMediaElement.audioTracks", "audioTracks")}} プロパティを使用します。 + +```js +var audioTracks = document.querySelector("video").audioTracks; +``` + +### トラック数の変化の監視 + +この例では、利用可能なチャンネル数に関する情報を表示するアプリがあります。 それを最新に保つために、{{event("addtrack")}} イベントと {{event("removetrack")}} イベントのためのハンドラを設定しています。 + +```js +audioTracks.onaddtrack = updateTrackCount; +audioTracks.onremovetrack = updateTrackCount; + +function updateTrackCount(event) { + trackCount = audioTracks.length; + drawTrackCountIndicator(trackCount); +} +``` + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| ---------------------------------------------------------------------------------------------------------------- | -------------------------------- | ---- | +| {{SpecName('HTML WHATWG', 'media.html#audiotracklist', 'AudioTrackList')}} | {{Spec2('HTML WHATWG')}} | | +| {{SpecName('HTML5 W3C', 'embedded-content-0.html#audiotracklist', 'AudioTrackList')}} | {{Spec2('HTML5 W3C')}} | | + +## ブラウザーの互換性 + +{{Compat("api.AudioTrackList")}} diff --git a/files/ja/web/api/audiotracklist/length/index.html b/files/ja/web/api/audiotracklist/length/index.html deleted file mode 100644 index f64a0fbae6fb1e..00000000000000 --- a/files/ja/web/api/audiotracklist/length/index.html +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: AudioTrackList.length -slug: Web/API/AudioTrackList/length -tags: - - API - - Audio - - AudioTrackList - - HTML DOM - - Media - - Property - - Read-only - - Reference - - length - - list - - track -translation_of: Web/API/AudioTrackList/length ---- -
{{APIRef("HTML DOM")}}
- -

読み取り専用の {{domxref("AudioTrackList")}}length プロパティは、AudioTrackList 内のエントリ数を返します。 各エントリは、メディア要素内の1つの音声トラックを表す {{domxref("AudioTrack")}} です。 値 0 は、メディアに音声トラックがないことを示します。

- -

構文

- -
var trackCount = AudioTrackList.length;
- -

- -

AudioTrackList に含まれる音声トラックの数を示す数値。 AudioTrackList を {{domxref("AudioTrack")}} 型のオブジェクトの配列として扱うことで、各トラックにアクセスできます。

- -

- -

このスニペットは、{{domxref("Document.querySelector", "querySelector()")}} によって {{Glossary("DOM")}} 内で見つかった最初の {{HTMLElement("video")}} 要素内の音声トラックの数を取得します。

- -
var videoElem = document.querySelector("video");
-var numAudioTracks = 0;
-
-if (videoElem.audioTracks) {
-  numAudioTracks = videoElem.audioTracks.length;
-}
-
- -

このサンプルは、{{domxref("AudioTrack")}} をサポートしていないブラウザーで失敗するのを避けるために、{{domxref("HTMLMediaElement.audioTracks")}} が定義されていることを確認していることに注意してください。

- -

仕様

- - - - - - - - - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('HTML WHATWG', 'media.html#dom-audiotracklist-length', 'AudioTrackList.length')}}{{Spec2('HTML WHATWG')}}
{{SpecName('HTML5 W3C', 'embedded-content-0.html#dom-audiotracklist-length', 'AudioTrackList.length')}}{{Spec2('HTML5 W3C')}}
- -

ブラウザーの互換性

- - - -

{{Compat("api.AudioTrackList.length")}}

diff --git a/files/ja/web/api/audiotracklist/length/index.md b/files/ja/web/api/audiotracklist/length/index.md new file mode 100644 index 00000000000000..1f4c6ead405b22 --- /dev/null +++ b/files/ja/web/api/audiotracklist/length/index.md @@ -0,0 +1,54 @@ +--- +title: AudioTrackList.length +slug: Web/API/AudioTrackList/length +tags: + - API + - Audio + - AudioTrackList + - HTML DOM + - Media + - Property + - Read-only + - Reference + - length + - list + - track +translation_of: Web/API/AudioTrackList/length +--- +{{APIRef("HTML DOM")}} + +読み取り専用の **{{domxref("AudioTrackList")}}** の **`length`** プロパティは、`AudioTrackList` 内のエントリ数を返します。 各エントリは、メディア要素内の 1 つの音声トラックを表す {{domxref("AudioTrack")}} です。 値 0 は、メディアに音声トラックがないことを示します。 + +## 構文 + + var trackCount = AudioTrackList.length; + +### 値 + +`AudioTrackList` に含まれる音声トラックの数を示す数値。 `AudioTrackList` を {{domxref("AudioTrack")}} 型のオブジェクトの配列として扱うことで、各トラックにアクセスできます。 + +## 例 + +このスニペットは、{{domxref("Document.querySelector", "querySelector()")}} によって {{Glossary("DOM")}} 内で見つかった最初の {{HTMLElement("video")}} 要素内の音声トラックの数を取得します。 + +```js +var videoElem = document.querySelector("video"); +var numAudioTracks = 0; + +if (videoElem.audioTracks) { + numAudioTracks = videoElem.audioTracks.length; +} +``` + +このサンプルは、{{domxref("AudioTrack")}} をサポートしていないブラウザーで失敗するのを避けるために、{{domxref("HTMLMediaElement.audioTracks")}} が定義されていることを確認していることに注意してください。 + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- | -------- | +| {{SpecName('HTML WHATWG', 'media.html#dom-audiotracklist-length', 'AudioTrackList.length')}} | {{Spec2('HTML WHATWG')}} | | +| {{SpecName('HTML5 W3C', 'embedded-content-0.html#dom-audiotracklist-length', 'AudioTrackList.length')}} | {{Spec2('HTML5 W3C')}} | | + +## ブラウザーの互換性 + +{{Compat("api.AudioTrackList.length")}} diff --git a/files/ja/web/api/audiotracklist/removetrack_event/index.html b/files/ja/web/api/audiotracklist/removetrack_event/index.html deleted file mode 100644 index ea6d7dcbc3eaba..00000000000000 --- a/files/ja/web/api/audiotracklist/removetrack_event/index.html +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: 'AudioTrackList: removetrack イベント' -slug: Web/API/AudioTrackList/removetrack_event -tags: - - AudioTrackList - - Event - - events - - removeTrack -translation_of: Web/API/AudioTrackList/removetrack_event ---- -
{{APIRef}}
- -

removeTrack イベントは、トラックが {{domxref("AudioTrackList")}} から取り除かれたときに発生します。

- - - - - - - - - - - - - - - - - - - - -
バブリングなし
キャンセル不可
インターフェイス{{domxref("TrackEvent")}}
イベントハンドラプロパティonremovetrack
- -

- -

AddEventListener() を使用する場合

- -
const videoElement = document.querySelector('video');
-
-videoElement.audioTracks.addEventListener('removetrack', (event) => {
-  console.log(`Audio track: ${event.track.label} removed`);
-});
- -

onremovetrack イベントハンドラプロパティを使用する場合

- -
const videoElement = document.querySelector('video');
-
-videoElement.audioTracks.onremovetrack = (event) => {
-  console.log(`Audio track: ${event.track.label} removed`);
-};
- -

仕様

- - - - - - - - - - - - -
仕様状態
{{SpecName('HTML WHATWG', 'media.html#event-media-removetrack', 'removetrack')}}{{Spec2('HTML WHATWG')}}
- -

ブラウザーの互換性

- - - -

{{Compat("api.AudioTrackList.removetrack_event")}}

- -

See also

- - diff --git a/files/ja/web/api/audiotracklist/removetrack_event/index.md b/files/ja/web/api/audiotracklist/removetrack_event/index.md new file mode 100644 index 00000000000000..ec9566728c6de2 --- /dev/null +++ b/files/ja/web/api/audiotracklist/removetrack_event/index.md @@ -0,0 +1,59 @@ +--- +title: 'AudioTrackList: removetrack イベント' +slug: Web/API/AudioTrackList/removetrack_event +tags: + - AudioTrackList + - Event + - events + - removeTrack +translation_of: Web/API/AudioTrackList/removetrack_event +--- +{{APIRef}} + +`removeTrack` イベントは、トラックが {{domxref("AudioTrackList")}} から取り除かれたときに発生します。 + +| バブリング | なし | +| -------------------------- | ---------------------------------------------------------------- | +| キャンセル | 不可 | +| インターフェイス | {{domxref("TrackEvent")}} | +| イベントハンドラプロパティ | [`onremovetrack`](/ja/docs/Web/API/AudioTrackList/onremovetrack) | + +## 例 + +`AddEventListener()` を使用する場合 + +```js +const videoElement = document.querySelector('video'); + +videoElement.audioTracks.addEventListener('removetrack', (event) => { + console.log(`Audio track: ${event.track.label} removed`); +}); +``` + +`onremovetrack` イベントハンドラプロパティを使用する場合 + +```js +const videoElement = document.querySelector('video'); + +videoElement.audioTracks.onremovetrack = (event) => { + console.log(`Audio track: ${event.track.label} removed`); +}; +``` + +## 仕様 + +| 仕様 | 状態 | +| ------------------------------------------------------------------------------------------------------------ | -------------------------------- | +| {{SpecName('HTML WHATWG', 'media.html#event-media-removetrack', 'removetrack')}} | {{Spec2('HTML WHATWG')}} | + +## ブラウザーの互換性 + +{{Compat("api.AudioTrackList.removetrack_event")}} + +## See also + +- 関連情報: [`addtrack`](/ja/docs/Web/API/AudioTrackList/addtrack_event), [`change`](/ja/docs/Web/API/AudioTrackList/change_event) +- [`VideoTrackList`](/ja/docs/Web/API/VideoTrackList) 対象でのこのイベント: [`removetrack`](/ja/docs/Web/API/VideoTrackList/removetrack_event) +- [`MediaStream`](/ja/docs/Web/API/MediaStream) 対象でのこのイベント: [`removetrack`](/ja/docs/Web/API/MediaStream/removetrack_event) +- [Media Streams API](/ja/docs/Web/API/Media_Streams_API) +- [WebRTC API](/ja/docs/Web/API/WebRTC_API) diff --git a/files/ja/web/api/authenticatorassertionresponse/index.html b/files/ja/web/api/authenticatorassertionresponse/index.html deleted file mode 100644 index 70a4bd060df6f7..00000000000000 --- a/files/ja/web/api/authenticatorassertionresponse/index.html +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: AuthenticatorAssertionResponse -slug: Web/API/AuthenticatorAssertionResponse -tags: - - API - - Authentication - - AuthenticatorAssertionResponse - - Interface - - Reference - - Web Authentication API - - WebAuthn - - インターフェイス -translation_of: Web/API/AuthenticatorAssertionResponse ---- -
{{APIRef("Web Authentication API")}}{{securecontext_header}}
- -

AuthenticatorAssertionResponseWeb Authentication API のインターフェイスで、 {{domxref('CredentialsContainer.get()')}} に {{domxref('PublicKeyCredential')}} を渡すと返されます。そして、キーペアを持ち、認証付きリクエストが有効で承認されていることをサービスに証明します。

- -

このインターフェイスは {{domxref("AuthenticatorResponse")}} を継承しています。

- -
-

メモ: このインターフェイスは最上位のコンテキストに限定されています。 {{HTMLElement("iframe")}} 要素の中で使用しても、何も効果がありません。

-
- -

プロパティ

- -
-
AuthenticatorAssertionResponse.clientDataJSON {{securecontext_inline}}{{readonlyinline}}
-
認証のためのクライアントデータで、オリジンやチャレンジです。 {{domxref("AuthenticatorAttestationResponse.clientDataJSON","clientDataJSON")}} プロパティは {{domxref("AuthenticatorResponse")}} から継承しています。
-
{{domxref("AuthenticatorAssertionResponse.authenticatorData")}} {{securecontext_inline}}{{readonlyinline}}
-
{{jsxref("ArrayBuffer")}} で、認証機器からの情報、例えば Relying Party ID Hash (rpIdHash)、証明カウンター、ユーザー存在テスト、ユーザー検証フラグ、その他の認証機器によって処理される拡張情報が入ります。
-
{{domxref("AuthenticatorAssertionResponse.signature")}} {{securecontext_inline}}{{readonlyinline}}
-
{{domxref("AuthenticatorAssertionResponse.authenticatorData")}} および {{domxref("AuthenticatorResponse.clientDataJSON")}} に関するアサーション署名です。アサーション署名は {{domxref("CredentialsContainer.create()","navigator.credentials.create()")}} の呼び出しで生成された鍵ペアの秘密鍵によって作成され、同じ鍵ペアの公開鍵によって検証されます。
-
{{domxref("AuthenticatorAssertionResponse.userHandle")}} {{securecontext_inline}}{{readonlyinline}}
-
{{jsxref("ArrayBuffer")}} で、非透過的なユーザー識別子が入ります。
-
- -

メソッド

- -

なし。

- -

- -
var options = {
-  challenge: new Uint8Array([/* bytes sent from the server */])
-};
-
-navigator.credentials.get({ "publicKey": options })
-    .then(function (credentialInfoAssertion) {
-    var assertionResponse = credentialInfoAssertion.response;
-    // Do something specific with the response
-
-    // send assertion response back to the server
-    // to proceed with the control of the credential
-}).catch(function (err) {
-     console.error(err);
-});
-
-
- -

仕様書

- - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName('WebAuthn', '#iface-authenticatorassertionresponse', 'AuthenticatorAssertionResponse interface')}}{{Spec2('WebAuthn')}}初回定義
- -

ブラウザーの互換性

- -

{{Compat("api.AuthenticatorAssertionResponse")}}

- -

関連情報

- - diff --git a/files/ja/web/api/authenticatorassertionresponse/index.md b/files/ja/web/api/authenticatorassertionresponse/index.md new file mode 100644 index 00000000000000..f0d47e1df1e8f0 --- /dev/null +++ b/files/ja/web/api/authenticatorassertionresponse/index.md @@ -0,0 +1,70 @@ +--- +title: AuthenticatorAssertionResponse +slug: Web/API/AuthenticatorAssertionResponse +tags: + - API + - Authentication + - AuthenticatorAssertionResponse + - Interface + - Reference + - Web Authentication API + - WebAuthn + - インターフェイス +translation_of: Web/API/AuthenticatorAssertionResponse +--- +{{APIRef("Web Authentication API")}}{{securecontext_header}} + +**`AuthenticatorAssertionResponse`** は [Web Authentication API](/ja/docs/Web/API/Web_Authentication_API) のインターフェイスで、 {{domxref('CredentialsContainer.get()')}} に {{domxref('PublicKeyCredential')}} を渡すと返されます。そして、キーペアを持ち、認証付きリクエストが有効で承認されていることをサービスに証明します。 + +このインターフェイスは {{domxref("AuthenticatorResponse")}} を継承しています。 + +> **Note:** **メモ:** このインターフェイスは最上位のコンテキストに限定されています。 {{HTMLElement("iframe")}} 要素の中で使用しても、何も効果がありません。 + +## プロパティ + +- `AuthenticatorAssertionResponse.clientDataJSON` {{securecontext_inline}}{{readonlyinline}} + - : 認証のためのクライアントデータで、オリジンやチャレンジです。 {{domxref("AuthenticatorAttestationResponse.clientDataJSON","clientDataJSON")}} プロパティは {{domxref("AuthenticatorResponse")}} から継承しています。 +- {{domxref("AuthenticatorAssertionResponse.authenticatorData")}} {{securecontext_inline}}{{readonlyinline}} + - : {{jsxref("ArrayBuffer")}} で、認証機器からの情報、例えば Relying Party ID Hash (rpIdHash)、証明カウンター、ユーザー存在テスト、ユーザー検証フラグ、その他の認証機器によって処理される拡張情報が入ります。 +- {{domxref("AuthenticatorAssertionResponse.signature")}} {{securecontext_inline}}{{readonlyinline}} + - : {{domxref("AuthenticatorAssertionResponse.authenticatorData")}} および {{domxref("AuthenticatorResponse.clientDataJSON")}} に関するアサーション署名です。アサーション署名は {{domxref("CredentialsContainer.create()","navigator.credentials.create()")}} の呼び出しで生成された鍵ペアの秘密鍵によって作成され、同じ鍵ペアの公開鍵によって検証されます。 +- {{domxref("AuthenticatorAssertionResponse.userHandle")}} {{securecontext_inline}}{{readonlyinline}} + - : {{jsxref("ArrayBuffer")}} で、非透過的なユーザー識別子が入ります。 + +## メソッド + +なし。 + +## 例 + +```js +var options = { + challenge: new Uint8Array([/* bytes sent from the server */]) +}; + +navigator.credentials.get({ "publicKey": options }) + .then(function (credentialInfoAssertion) { + var assertionResponse = credentialInfoAssertion.response; + // Do something specific with the response + + // send assertion response back to the server + // to proceed with the control of the credential +}).catch(function (err) { + console.error(err); +}); +``` + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| ------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------- | -------- | +| {{SpecName('WebAuthn', '#iface-authenticatorassertionresponse', 'AuthenticatorAssertionResponse interface')}} | {{Spec2('WebAuthn')}} | 初回定義 | + +## ブラウザーの互換性 + +{{Compat("api.AuthenticatorAssertionResponse")}} + +## 関連情報 + +- {{domxref("AuthenticatorAttestationResponse")}}: 新しい資格情報を生成する際に得られる種類のレスポンスのインターフェイス +- {{domxref("AuthenticatorResponse")}}: 親インターフェイス diff --git a/files/ja/web/api/authenticatorattestationresponse/index.html b/files/ja/web/api/authenticatorattestationresponse/index.html deleted file mode 100644 index ab17b4a0bcc789..00000000000000 --- a/files/ja/web/api/authenticatorattestationresponse/index.html +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: AuthenticatorAttestationResponse -slug: Web/API/AuthenticatorAttestationResponse -tags: - - API - - Authentication - - AuthenticatorAttestationResponse - - Interface - - Reference - - Web Authentication API - - WebAuthn - - インターフェイス -translation_of: Web/API/AuthenticatorAttestationResponse ---- -
{{APIRef("Web Authentication API")}}{{securecontext_header}}
- -

AuthenticatorAttestationResponseWeb Authentication API のインターフェイスで、 {{domxref('CredentialsContainer.create()')}} に {{domxref('PublicKeyCredential')}} を渡すと返されます。そして、生成された新しいキーペアの暗号化信頼ルートを提供します。このレスポンスは認証情報の生成を完了させるために、信頼されている側のサーバーに送信されます。

- -

このインターフェイスは {{domxref("AuthenticatorResponse")}} を継承しています。

- -
-

メモ: このインターフェイスは最上位のコンテキストに限定されています。 {{HTMLElement("iframe")}} 要素の中で使用しても、何も効果がありません。

-
- -

プロパティ

- -
-
AuthenticatorAttestationResponse.clientDataJSON {{securecontext_inline}}{{readonlyinline}}
-
認証のためのクライアントデータで、オリジンやチャレンジです。 {{domxref("AuthenticatorAttestationResponse.clientDataJSON","clientDataJSON")}} プロパティは {{domxref("AuthenticatorResponse")}} から継承しています。
-
{{domxref("AuthenticatorAttestationResponse.attestationObject")}} {{securecontext_inline}}{{readonlyinline}}
-
{{jsxref("ArrayBuffer")}} で、新しく生成されたキーペアのための認証機器のデータとアテステーションステートメントが入ります。
-
- -

メソッド

- -
-
{{domxref("AuthenticatorAttestationResponse.getTransports()")}}{{securecontext_inline}}
-
文字列の {{jsxref("Array")}} で、認証機器がどの転送方法 (usbnfc など) に対応していると信じられるかを記述します。情報が利用できない場合は、配列が空になることがあります。
-
- -

- -
var publicKey = {
-  challenge: /* from the server */,
-  rp: {
-    name: "Example CORP",
-    id  : "login.example.com"
-  },
-  user: {
-    id: new Uint8Array(16),
-    name: "jdoe@example.com",
-    displayName: "John Doe"
-  },
-  pubKeyCredParams: [
-    {
-      type: "public-key",
-      alg: -7
-    }
-  ]
-};
-
-navigator.credentials.create({ publicKey })
-  .then(function (newCredentialInfo) {
-    var response = newCredentialInfo.response;
-    // Do something with the response
-    // (sending it back to the relying party server maybe?)
-  }).catch(function (err) {
-     console.error(err);
-  });
- -

仕様書

- - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName('WebAuthn','#authenticatorattestationresponse', 'AuthenticatorAttestationResponse interface')}}{{Spec2('WebAuthn')}}初回定義
- -

ブラウザーの互換性

- -

{{Compat("api.AuthenticatorAttestationResponse")}}

- -

関連情報

- - diff --git a/files/ja/web/api/authenticatorattestationresponse/index.md b/files/ja/web/api/authenticatorattestationresponse/index.md new file mode 100644 index 00000000000000..2f18f96f8e242b --- /dev/null +++ b/files/ja/web/api/authenticatorattestationresponse/index.md @@ -0,0 +1,80 @@ +--- +title: AuthenticatorAttestationResponse +slug: Web/API/AuthenticatorAttestationResponse +tags: + - API + - Authentication + - AuthenticatorAttestationResponse + - Interface + - Reference + - Web Authentication API + - WebAuthn + - インターフェイス +translation_of: Web/API/AuthenticatorAttestationResponse +--- +{{APIRef("Web Authentication API")}}{{securecontext_header}} + +**`AuthenticatorAttestationResponse`** は [Web Authentication API](/ja/docs/Web/API/Web_Authentication_API) のインターフェイスで、 {{domxref('CredentialsContainer.create()')}} に {{domxref('PublicKeyCredential')}} を渡すと返されます。そして、生成された新しいキーペアの暗号化信頼ルートを提供します。このレスポンスは認証情報の生成を完了させるために、信頼されている側のサーバーに送信されます。 + +このインターフェイスは {{domxref("AuthenticatorResponse")}} を継承しています。 + +> **Note:** **メモ:** このインターフェイスは最上位のコンテキストに限定されています。 {{HTMLElement("iframe")}} 要素の中で使用しても、何も効果がありません。 + +## プロパティ + +- `AuthenticatorAttestationResponse.clientDataJSON` {{securecontext_inline}}{{readonlyinline}} + - : 認証のためのクライアントデータで、オリジンやチャレンジです。 {{domxref("AuthenticatorAttestationResponse.clientDataJSON","clientDataJSON")}} プロパティは {{domxref("AuthenticatorResponse")}} から継承しています。 +- {{domxref("AuthenticatorAttestationResponse.attestationObject")}} {{securecontext_inline}}{{readonlyinline}} + - : {{jsxref("ArrayBuffer")}} で、新しく生成されたキーペアのための認証機器のデータとアテステーションステートメントが入ります。 + +## メソッド + +- {{domxref("AuthenticatorAttestationResponse.getTransports()")}}{{securecontext_inline}} + - : 文字列の {{jsxref("Array")}} で、認証機器がどの転送方法 (`usb` や `nfc` など) に対応していると信じられるかを記述します。情報が利用できない場合は、配列が空になることがあります。 + +## 例 + +```js +var publicKey = { + challenge: /* from the server */, + rp: { + name: "Example CORP", + id : "login.example.com" + }, + user: { + id: new Uint8Array(16), + name: "jdoe@example.com", + displayName: "John Doe" + }, + pubKeyCredParams: [ + { + type: "public-key", + alg: -7 + } + ] +}; + +navigator.credentials.create({ publicKey }) + .then(function (newCredentialInfo) { + var response = newCredentialInfo.response; + // Do something with the response + // (sending it back to the relying party server maybe?) + }).catch(function (err) { + console.error(err); + }); +``` + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| -------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------- | +| {{SpecName('WebAuthn','#authenticatorattestationresponse', 'AuthenticatorAttestationResponse interface')}} | {{Spec2('WebAuthn')}} | 初回定義 | + +## ブラウザーの互換性 + +{{Compat("api.AuthenticatorAttestationResponse")}} + +## 関連情報 + +- {{domxref("AuthenticatorAssertionResponse")}}: 既存の認証情報を受け取る際にレスポンスの種類のインターフェイス +- {{domxref("AuthenticatorResponse")}}: 親インターフェイス diff --git a/files/ja/web/api/authenticatorresponse/index.html b/files/ja/web/api/authenticatorresponse/index.html deleted file mode 100644 index 9f116bd2672934..00000000000000 --- a/files/ja/web/api/authenticatorresponse/index.html +++ /dev/null @@ -1,117 +0,0 @@ ---- -title: AuthenticatorResponse -slug: Web/API/AuthenticatorResponse -tags: - - API - - Authentication - - AuthenticatorResponse - - Interface - - Reference - - Web Authentication API - - WebAuthn - - インターフェイス -translation_of: Web/API/AuthenticatorResponse ---- -
{{APIRef("Web Authentication API")}}{{securecontext_header}}
- -

AuthenticatorResponseWeb Authentication API のインターフェイスで、キーペアを信頼する暗号化ルートを提供するインターフェイスの基本インターフェイスです。子インターフェイスでは、チャレンジのオリジンなどのブラウザーからの情報を含み、 {{domxref("PublicKeyCredential.response")}} から返されることがあります。

- -

AuthenticatorResponse に基づくインターフェイス

- -

以下のインターフェイスは AuthenticatorResponse インターフェイスに基づいています。

- -
-
    -
  • {{domxref("AuthenticatorAssertionResponse")}}
  • -
  • {{domxref("AuthenticatorAttestationResponse")}}
  • -
-
- -

プロパティ

- -
-
{{domxref("AuthenticatorResponse.clientDataJSON")}}
-
JSON 文字列が入った {{domxref("ArrayBuffer")}} で、 {{domxref("CredentialsContainer.create()")}} または {{domxref("CredentialsContainer.get()")}} に渡されたクライアントデータを表します。
-
- -

メソッド

- -

なし。

- -

- -

AuthenticatorAssertionResponse の取得

- -
var options = {
-  challenge: new Uint8Array([/* bytes sent from the server */])
-};
-
-navigator.credentials.get({ "publicKey": options })
-    .then(function (credentialInfoAssertion) {
-    var assertionResponse = credentialInfoAssertion.response;
-    // send assertion response back to the server
-    // to proceed with the control of the credential
-}).catch(function (err) {
-     console.error(err);
-});
-
-
- -

AuthenticatorAttestationResponse の取得

- -
var publicKey = {
-  challenge: /* from the server */,
-  rp: {
-    name: "Example CORP",
-    id  : "login.example.com"
-  },
-  user: {
-    id: new Uint8Array(16),
-    name: "jdoe@example.com",
-    displayName: "John Doe"
-  },
-  pubKeyCredParams: [
-    {
-      type: "public-key",
-      alg: -7
-    }
-  ]
-};
-
-navigator.credentials.create({ publicKey })
-  .then(function (newCredentialInfo) {
-    var attestationResponse = newCredentialInfo.response;
-  }).catch(function (err) {
-     console.error(err);
-  });
- -

仕様書

- - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName('WebAuthn','#authenticatorresponse', 'AuthenticatorResponse interface')}}{{Spec2('WebAuthn')}}初回定義
- -

ブラウザーの互換性

- -

{{Compat("api.PublicKeyCredentialRequestOptions")}}

- -

関連情報

- - diff --git a/files/ja/web/api/authenticatorresponse/index.md b/files/ja/web/api/authenticatorresponse/index.md new file mode 100644 index 00000000000000..97a7d09111bdd4 --- /dev/null +++ b/files/ja/web/api/authenticatorresponse/index.md @@ -0,0 +1,98 @@ +--- +title: AuthenticatorResponse +slug: Web/API/AuthenticatorResponse +tags: + - API + - Authentication + - AuthenticatorResponse + - Interface + - Reference + - Web Authentication API + - WebAuthn + - インターフェイス +translation_of: Web/API/AuthenticatorResponse +--- +{{APIRef("Web Authentication API")}}{{securecontext_header}} + +**`AuthenticatorResponse`** は [Web Authentication API](/ja/docs/Web/API/Web_Authentication_API) のインターフェイスで、キーペアを信頼する暗号化ルートを提供するインターフェイスの基本インターフェイスです。子インターフェイスでは、チャレンジのオリジンなどのブラウザーからの情報を含み、 {{domxref("PublicKeyCredential.response")}} から返されることがあります。 + +## AuthenticatorResponse に基づくインターフェイス + +以下のインターフェイスは AuthenticatorResponse インターフェイスに基づいています。 + +- {{domxref("AuthenticatorAssertionResponse")}} +- {{domxref("AuthenticatorAttestationResponse")}} + +## プロパティ + +- {{domxref("AuthenticatorResponse.clientDataJSON")}} + - : [JSON](/ja/docs/Learn/JavaScript/Objects/JSON) 文字列が入った {{domxref("ArrayBuffer")}} で、 {{domxref("CredentialsContainer.create()")}} または {{domxref("CredentialsContainer.get()")}} に渡されたクライアントデータを表します。 + +## メソッド + +なし。 + +## 例 + +### AuthenticatorAssertionResponse の取得 + +```js +var options = { + challenge: new Uint8Array([/* bytes sent from the server */]) +}; + +navigator.credentials.get({ "publicKey": options }) + .then(function (credentialInfoAssertion) { + var assertionResponse = credentialInfoAssertion.response; + // send assertion response back to the server + // to proceed with the control of the credential +}).catch(function (err) { + console.error(err); +}); +``` + +### AuthenticatorAttestationResponse の取得 + +```js +var publicKey = { + challenge: /* from the server */, + rp: { + name: "Example CORP", + id : "login.example.com" + }, + user: { + id: new Uint8Array(16), + name: "jdoe@example.com", + displayName: "John Doe" + }, + pubKeyCredParams: [ + { + type: "public-key", + alg: -7 + } + ] +}; + +navigator.credentials.create({ publicKey }) + .then(function (newCredentialInfo) { + var attestationResponse = newCredentialInfo.response; + }).catch(function (err) { + console.error(err); + }); +``` + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------- | +| {{SpecName('WebAuthn','#authenticatorresponse', 'AuthenticatorResponse interface')}} | {{Spec2('WebAuthn')}} | 初回定義 | + +## ブラウザーの互換性 + +{{Compat("api.PublicKeyCredentialRequestOptions")}} + +## 関連情報 + +- {{domxref("AuthenticatorAttestationResponse")}} +- {{domxref("AuthenticatorAssertionResponse")}} +- {{domxref("PublicKeyCredential.response")}} diff --git a/files/ja/web/api/battery_status_api/index.html b/files/ja/web/api/battery_status_api/index.html deleted file mode 100644 index 1f34ab41334292..00000000000000 --- a/files/ja/web/api/battery_status_api/index.html +++ /dev/null @@ -1,98 +0,0 @@ ---- -title: Battery Status API -slug: Web/API/Battery_Status_API -tags: - - API - - Apps - - Battery - - Firefox OS - - Guide - - Mobile - - ガイド -translation_of: Web/API/Battery_Status_API ---- -
{{DefaultAPISidebar("Battery API")}}{{deprecated_header}}
- -

Battery Status API は、 Battery API と呼ばれることの方が多いのですが、システムのバッテリー充電レベルに関する情報の提供、およびバッテリーレベルや充電状態が変化したときに発生するイベントによる通知を可能にします。これは、バッテリーが消耗したときにバッテリー消費を減らすためアプリのリソース使用状況を調整したり、データを失わないためにバッテリーが切れる前に変更点を保存したりするために使用できます。

- -

Battery Status API は {{domxref("window.navigator")}} を、 battery promise を返す {{domxref("navigator.getBattery()")}} メソッドで拡張します。 Promise は、バッテリーの状態監視を制御できる新たなイベントも提供する、{{domxref("BatteryManager")}} オブジェクトで解決します。

- -

- -

以下の例では、充電状況 (電源に接続して充電中であるか) の変化およびバッテリーレベルの変化およびタイミングを監視します。これは、 {{event("chargingchange")}}, {{event("levelchange")}}, {{event("chargingtimechange")}}, {{event("dischargingtimechange")}} の各イベントをそれぞれ待ち受けすることによって実現します。

- -
navigator.getBattery().then(function(battery) {
-  function updateAllBatteryInfo(){
-    updateChargeInfo();
-    updateLevelInfo();
-    updateChargingInfo();
-    updateDischargingInfo();
-  }
-  updateAllBatteryInfo();
-
-  battery.addEventListener('chargingchange', function(){
-    updateChargeInfo();
-  });
-  function updateChargeInfo(){
-    console.log("Battery charging? "
-                + (battery.charging ? "Yes" : "No"));
-  }
-
-  battery.addEventListener('levelchange', function(){
-    updateLevelInfo();
-  });
-  function updateLevelInfo(){
-    console.log("Battery level: "
-                + battery.level * 100 + "%");
-  }
-
-  battery.addEventListener('chargingtimechange', function(){
-    updateChargingInfo();
-  });
-  function updateChargingInfo(){
-    console.log("Battery charging time: "
-                 + battery.chargingTime + " seconds");
-  }
-
-  battery.addEventListener('dischargingtimechange', function(){
-    updateDischargingInfo();
-  });
-  function updateDischargingInfo(){
-    console.log("Battery discharging time: "
-                 + battery.dischargingTime + " seconds");
-  }
-
-});
-
- -

仕様書に記載されているサンプルもご覧ください。

- -

仕様書

- - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName("Battery API")}}{{Spec2("Battery API")}}初回定義
- -

ブラウザーの互換性

- -

{{Compat("api.BatteryManager")}}

- -

関連情報

- - diff --git a/files/ja/web/api/battery_status_api/index.md b/files/ja/web/api/battery_status_api/index.md new file mode 100644 index 00000000000000..02ceadc016d06d --- /dev/null +++ b/files/ja/web/api/battery_status_api/index.md @@ -0,0 +1,84 @@ +--- +title: Battery Status API +slug: Web/API/Battery_Status_API +tags: + - API + - Apps + - Battery + - Firefox OS + - Guide + - Mobile + - ガイド +translation_of: Web/API/Battery_Status_API +--- +{{DefaultAPISidebar("Battery API")}}{{deprecated_header}} + +**Battery Status API** は、 **Battery API** と呼ばれることの方が多いのですが、システムのバッテリー充電レベルに関する情報の提供、およびバッテリーレベルや充電状態が変化したときに発生するイベントによる通知を可能にします。これは、バッテリーが消耗したときにバッテリー消費を減らすためアプリのリソース使用状況を調整したり、データを失わないためにバッテリーが切れる前に変更点を保存したりするために使用できます。 + +Battery Status API は {{domxref("window.navigator")}} を、 battery promise を返す {{domxref("navigator.getBattery()")}} メソッドで拡張します。 Promise は、バッテリーの状態監視を制御できる新たなイベントも提供する、{{domxref("BatteryManager")}} オブジェクトで解決します。 + +## 例 + +以下の例では、充電状況 (電源に接続して充電中であるか) の変化およびバッテリーレベルの変化およびタイミングを監視します。これは、 {{event("chargingchange")}}, {{event("levelchange")}}, {{event("chargingtimechange")}}, {{event("dischargingtimechange")}} の各イベントをそれぞれ待ち受けすることによって実現します。 + +```js +navigator.getBattery().then(function(battery) { + function updateAllBatteryInfo(){ + updateChargeInfo(); + updateLevelInfo(); + updateChargingInfo(); + updateDischargingInfo(); + } + updateAllBatteryInfo(); + + battery.addEventListener('chargingchange', function(){ + updateChargeInfo(); + }); + function updateChargeInfo(){ + console.log("Battery charging? " + + (battery.charging ? "Yes" : "No")); + } + + battery.addEventListener('levelchange', function(){ + updateLevelInfo(); + }); + function updateLevelInfo(){ + console.log("Battery level: " + + battery.level * 100 + "%"); + } + + battery.addEventListener('chargingtimechange', function(){ + updateChargingInfo(); + }); + function updateChargingInfo(){ + console.log("Battery charging time: " + + battery.chargingTime + " seconds"); + } + + battery.addEventListener('dischargingtimechange', function(){ + updateDischargingInfo(); + }); + function updateDischargingInfo(){ + console.log("Battery discharging time: " + + battery.dischargingTime + " seconds"); + } + +}); +``` + +[仕様書に記載されているサンプル](http://www.w3.org/TR/battery-status/#examples)もご覧ください。 + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| ------------------------------------ | -------------------------------- | -------- | +| {{SpecName("Battery API")}} | {{Spec2("Battery API")}} | 初回定義 | + +## ブラウザーの互換性 + +{{Compat("api.BatteryManager")}} + +## 関連情報 + +- [Retrieving battery status information - demo & article](/ja/Apps/Build/gather_and_modify_data/retrieving_battery_status_information) +- [Hacks blog post - Using the Battery API](http://hacks.mozilla.org/2012/02/using-the-battery-api-part-of-webapi/) diff --git a/files/ja/web/api/blob/arraybuffer/index.html b/files/ja/web/api/blob/arraybuffer/index.html deleted file mode 100644 index 85f4a4ef0e9c06..00000000000000 --- a/files/ja/web/api/blob/arraybuffer/index.html +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: Blob.arrayBuffer() -slug: Web/API/Blob/arrayBuffer -tags: - - API - - ArrayBuffer - - Blob - - File API - - Method - - Reference - - binary - - read -translation_of: Web/API/Blob/arrayBuffer ---- -

{{APIRef("File API")}}

- -

{{domxref("Blob")}} インターフェイスの arrayBuffer() メソッドは、{{domxref("ArrayBuffer")}} 内のバイナリデータとして Blob の内容を解決する {{jsxref("Promise")}} を返します。

- - - -

シンタックス

- -
var bufferPromise = blob.arrayBuffer();
-
-blob.arrayBuffer().then(buffer => /* ArrayBuffer を処理します。 */);
-
-var buffer = await blob.arrayBuffer();
- -

パラメータ

- -

なし

- -

戻り値

- -

Blob のデータをバイナリ形式で含む {{domxref("ArrayBuffer")}} で解決する Promise。

- -

例外

- -

このメソッドは例外をスローしませんが、Promise を拒否することがあります。例えば、Blob のデータを取得するために使用されたリーダーが例外をスローした場合などです。データの取得中に発生した例外はすべて拒否に変換されます。

- -

使用上のメモ

- -

{{domxref("FileReader.readAsArrayBuffer()")}} メソッドに似ていますが、arrayBuffer() は、FileReader インターフェイスのメソッドのようにイベントベースの API ではなく、Promise を返します。

- -

仕様

- - - - - - - - - - - - - - -
仕様書ステータスコメント
{{SpecName("File API", "#dom-blob-arraybuffer", "Blob.arrayBuffer()")}}{{Spec2("File API")}}
- -

ブラウザの互換性

- -

{{Compat("api.Blob.arrayBuffer")}}

- -

あわせて参照

- - diff --git a/files/ja/web/api/blob/arraybuffer/index.md b/files/ja/web/api/blob/arraybuffer/index.md new file mode 100644 index 00000000000000..c45c78a5f4b17d --- /dev/null +++ b/files/ja/web/api/blob/arraybuffer/index.md @@ -0,0 +1,57 @@ +--- +title: Blob.arrayBuffer() +slug: Web/API/Blob/arrayBuffer +tags: + - API + - ArrayBuffer + - Blob + - File API + - Method + - Reference + - binary + - read +translation_of: Web/API/Blob/arrayBuffer +--- +{{APIRef("File API")}} + +{{domxref("Blob")}} インターフェイスの **`arrayBuffer()`** メソッドは、{{domxref("ArrayBuffer")}} 内のバイナリデータとして Blob の内容を解決する {{jsxref("Promise")}} を返します。 + +## シンタックス + + var bufferPromise = blob.arrayBuffer(); + + blob.arrayBuffer().then(buffer => /* ArrayBuffer を処理します。 */); + + var buffer = await blob.arrayBuffer(); + +### パラメータ + +なし + +### 戻り値 + +Blob のデータをバイナリ形式で含む {{domxref("ArrayBuffer")}} で解決する Promise。 + +### 例外 + +このメソッドは例外をスローしませんが、Promise を拒否することがあります。例えば、Blob のデータを取得するために使用されたリーダーが例外をスローした場合などです。データの取得中に発生した例外はすべて拒否に変換されます。 + +## 使用上のメモ + +{{domxref("FileReader.readAsArrayBuffer()")}} メソッドに似ていますが、`arrayBuffer()` は、`FileReader` インターフェイスのメソッドのようにイベントベースの API ではなく、Promise を返します。 + +## 仕様 + +| 仕様書 | ステータス | コメント | +| ------------------------------------------------------------------------------------------------ | ---------------------------- | -------- | +| {{SpecName("File API", "#dom-blob-arraybuffer", "Blob.arrayBuffer()")}} | {{Spec2("File API")}} | | + +## ブラウザの互換性 + +{{Compat("api.Blob.arrayBuffer")}} + +## あわせて参照 + +- {{domxref("Body.arrayBuffer()")}} +- [Streams API](/ja/docs/Web/API/Streams_API) +- {{domxref("FileReader.readAsArrayBuffer()")}} diff --git a/files/ja/web/api/blob/blob/index.html b/files/ja/web/api/blob/blob/index.html deleted file mode 100644 index 6191cbf77c137c..00000000000000 --- a/files/ja/web/api/blob/blob/index.html +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: Blob() -slug: Web/API/Blob/Blob -tags: - - API - - Blob - - Constructor - - Experimental - - File API - - Reference - - コンストラクター -translation_of: Web/API/Blob/Blob ---- -
{{APIRef("File API")}}
- -

Blob() コンストラクターは、新たな {{domxref("Blob")}} オブジェクトを返します。その blob の中身は、引数 array で与えられた値を連結したものから構成されています。

- -

構文

- -
var newBlob = new Blob(array, options);
-
- -

引数

- -
-
array
-
{{jsxref("Array")}} で、その中身が {{jsxref("ArrayBuffer")}}, {{domxref("ArrayBufferView")}}, {{domxref("Blob")}}, {{domxref("USVString")}} のオブジェクト、またはそのようなオブジェクトの何れかが混合したもので、それが {{domxref("Blob")}} の中に入れられます。 USVString オブジェクトは UTF-8 で符号化されたものです。
-
options {{optional_inline}}
-
-

任意で、以下のプロパティを指定する {{domxref("BlobPropertyBag")}} オブジェクトです。

- -
-
type {{optional_inline}}
-
blob に格納されるデータの {{Glossary("MIME type", "MIME タイプ")}} です。既定値は空文字列 ("") です。
-
endings {{optional_inline}} {{non-standard_inline}}
-
データがテキストの場合、コンテンツ内の改行文字 (\n) の解釈方法を示します。既定値は transparent であり、改行文字を変換することなく blob に格納します。改行文字をホストシステムの慣行に合わせるには、endings を指定してください。
-
-
-
- -

返値

- -

指定されたデータを含む {{domxref("Blob")}} オブジェクトです。

- -

- -
var aFileParts = ['<a id="a"><b id="b">hey!</b></a>']; // 単一の DOMString からなる配列
-var oMyBlob = new Blob(aFileParts, {type : 'text/html'}); // blob
- -

仕様

- - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName('File API', '#constructorBlob', 'Blob()')}}{{Spec2('File API')}}初回定義
- -

ブラウザの互換性

- -

{{Compat("api.Blob.Blob")}}

- -

あわせて参照

- - diff --git a/files/ja/web/api/blob/blob/index.md b/files/ja/web/api/blob/blob/index.md new file mode 100644 index 00000000000000..de2720536b2a3e --- /dev/null +++ b/files/ja/web/api/blob/blob/index.md @@ -0,0 +1,55 @@ +--- +title: Blob() +slug: Web/API/Blob/Blob +tags: + - API + - Blob + - Constructor + - Experimental + - File API + - Reference + - コンストラクター +translation_of: Web/API/Blob/Blob +--- +{{APIRef("File API")}} + +**`Blob()`** コンストラクターは、新たな {{domxref("Blob")}} オブジェクトを返します。その blob の中身は、引数 `array` で与えられた値を連結したものから構成されています。 + +## 構文 + + var newBlob = new Blob(array, options); + +### 引数 + +- `array` + - : {{jsxref("Array")}} で、その中身が {{jsxref("ArrayBuffer")}}, {{domxref("ArrayBufferView")}}, {{domxref("Blob")}}, {{domxref("USVString")}} のオブジェクト、またはそのようなオブジェクトの何れかが混合したもので、それが {{domxref("Blob")}} の中に入れられます。 `USVString` オブジェクトは UTF-8 で符号化されたものです。 +- `options` {{optional_inline}} + - : 任意で、以下のプロパティを指定する {{domxref("BlobPropertyBag")}} オブジェクトです。_ `type` {{optional_inline}} + _ : blob に格納されるデータの {{Glossary("MIME type", "MIME タイプ")}} です。既定値は空文字列 (`""`) です。 + - `endings` {{optional_inline}} {{non-standard_inline}} + - : データがテキストの場合、コンテンツ内の改行文字 (`\n`) の解釈方法を示します。既定値は `transparent` であり、改行文字を変換することなく blob に格納します。改行文字をホストシステムの慣行に合わせるには、`endings` を指定してください。 + +### 返値 + +指定されたデータを含む {{domxref("Blob")}} オブジェクトです。 + +## 例 + +```js +var aFileParts = ['hey!']; // 単一の DOMString からなる配列 +var oMyBlob = new Blob(aFileParts, {type : 'text/html'}); // blob +``` + +## 仕様 + +| 仕様書 | 状態 | 備考 | +| ------------------------------------------------------------------------ | ---------------------------- | -------- | +| {{SpecName('File API', '#constructorBlob', 'Blob()')}} | {{Spec2('File API')}} | 初回定義 | + +## ブラウザの互換性 + +{{Compat("api.Blob.Blob")}} + +## あわせて参照 + +- このコンストラクターによって置き換えられた非推奨の {{domxref("BlobBuilder")}} インターフェイス diff --git a/files/ja/web/api/blob/size/index.html b/files/ja/web/api/blob/size/index.html deleted file mode 100644 index 408fe28a2f0c86..00000000000000 --- a/files/ja/web/api/blob/size/index.html +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: Blob.size -slug: Web/API/Blob/size -tags: - - API - - Blob - - Bytes - - File API - - Files - - Property - - Reference - - length - - size -translation_of: Web/API/Blob/size ---- -
-
{{APIRef("File API")}}
- -

{{domxref("Blob")}} インターフェイスの size プロパティは、{{domxref("Blob")}} または {{domxref("File")}} のサイズをバイト単位で返します。

- -

シンタックス

- -
var sizeInBytes = blob.size
-
- -

- -

Blob (または Blob ベースのオブジェクト、例えば{{domxref("File")}}) 内に含まれるデータのバイト数。

- -

- -

この例では、file 型の {{HTMLElement("input")}} 要素を使用して、ユーザーにファイルのグループを尋ね、それらのファイルを繰り返し処理して、その名前と長さをバイト単位で出力しています。

- -
// fileInputは HTMLInputElement <input type="file" multiple id="myfileinput"> です。
-var fileInput = document.getElementById("myfileinput");
-
-// files は FileList オブジェクトです (NodeList に似ています)。
-var files = fileInput.files;
-
-for (var i = 0; i < files.length; i++) {
-  console.log(files[i].name + " has a size of " + files[i].size + " Bytes");
-}
- -

仕様

- - - - - - - - - - - - - - -
仕様書ステータスコメント
{{SpecName('File API', '#dfn-size', 'Blob.size')}}{{Spec2('File API')}}初期定義
- -

ブラウザの互換性

- -
-

{{Compat("api.Blob.size")}}

-
- -

あわせて参照

- - -
diff --git a/files/ja/web/api/blob/size/index.md b/files/ja/web/api/blob/size/index.md new file mode 100644 index 00000000000000..b79a5fbb306f65 --- /dev/null +++ b/files/ja/web/api/blob/size/index.md @@ -0,0 +1,57 @@ +--- +title: Blob.size +slug: Web/API/Blob/size +tags: + - API + - Blob + - Bytes + - File API + - Files + - Property + - Reference + - length + - size +translation_of: Web/API/Blob/size +--- +{{APIRef("File API")}} + +{{domxref("Blob")}} インターフェイスの **`size`** プロパティは、{{domxref("Blob")}} または {{domxref("File")}} のサイズをバイト単位で返します。 + +## シンタックス + + var sizeInBytes = blob.size + +### 値 + +`Blob` (または `Blob` ベースのオブジェクト、例えば{{domxref("File")}}) 内に含まれるデータのバイト数。 + +## 例 + +この例では、`file` 型の {{HTMLElement("input")}} 要素を使用して、ユーザーにファイルのグループを尋ね、それらのファイルを繰り返し処理して、その名前と長さをバイト単位で出力しています。 + +```js +// fileInputは HTMLInputElement です。 +var fileInput = document.getElementById("myfileinput"); + +// files は FileList オブジェクトです (NodeList に似ています)。 +var files = fileInput.files; + +for (var i = 0; i < files.length; i++) { + console.log(files[i].name + " has a size of " + files[i].size + " Bytes"); +} +``` + +## 仕様 + +| 仕様書 | ステータス | コメント | +| -------------------------------------------------------------------- | ---------------------------- | -------- | +| {{SpecName('File API', '#dfn-size', 'Blob.size')}} | {{Spec2('File API')}} | 初期定義 | + +## ブラウザの互換性 + +{{Compat("api.Blob.size")}} + +## あわせて参照 + +- {{domxref("Blob")}} +- [Web アプリケーションからのファイルの使用](/ja/docs/Web/API/File/Using_files_from_web_applications) diff --git a/files/ja/web/api/blob/slice/index.html b/files/ja/web/api/blob/slice/index.html deleted file mode 100644 index d284b4a829d068..00000000000000 --- a/files/ja/web/api/blob/slice/index.html +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Blob.slice() -slug: Web/API/Blob/slice -tags: - - API - - Blob - - File - - File API - - Method - - Reference - - Section - - Subset - - data - - slice - - split -translation_of: Web/API/Blob/slice ---- -
{{APIRef("File API")}}
- -

{{domxref("Blob")}} インターフェイスの slice() メソッドは、呼び出された blob のサブセットのデータを含む新しい Blob オブジェクトを作成して返します。

- -

構文

- -
var newBlob = blob.slice(start, end, contentType);
- -

パラメータ

- -
-
start {{optional_inline}}
-
新しい {{domxref("Blob")}} に含める最初のバイトを示す {{domxref("Blob")}} へのインデックス。負の値を指定すると、{{domxref("Blob")}} の末尾から先頭へのオフセットとして扱われます。例えば、-10 は {{domxref("Blob")}} の最後のバイトから10番目になります。デフォルト値は 0 です。start にもとの {{domxref("Blob")}} のサイズよりも大きい値を指定すると、返される {{domxref("Blob")}} のサイズは 0 で、データは何も含まれません。
-
end {{optional_inline}}
-
新しい {{domxref("Blob")}} に含まれない最初のバイトを示す {{domxref("Blob")}} へのインデックス。(つまり、このインデックスに正確に位置するバイトは含まれません)。負の値を指定すると、{{domxref("Blob")}} の末尾から先頭へのオフセットとして扱われます。例えば、-10は {{domxref("Blob")}} の最後のバイトから10番目になります。デフォルト値は size です。
-
contentType {{optional_inline}}
-
新しい {{domxref("Blob")}} に割り当てるコンテンツの型。これはその type プロパティの値になります。デフォルト値は空の文字列です。
-
- -

戻り値

- -

このメソッドが呼び出された Blob 内に含まれるデータの指定されたサブセットを含む新しい {{domxref("Blob")}} オブジェクト。元の Blob は変更されません。

- -

仕様

- - - - - - - - - - - - - - -
仕様ステータスコメント
{{SpecName("File API", "#dfn-slice", "Blob.slice()")}}{{Spec2("File API")}}初期定義。
- -

ブラウザの実装状況

- -

{{Compat("api.Blob.slice")}}

- -

あわせて参照

- - diff --git a/files/ja/web/api/blob/slice/index.md b/files/ja/web/api/blob/slice/index.md new file mode 100644 index 00000000000000..fb645f5594d88f --- /dev/null +++ b/files/ja/web/api/blob/slice/index.md @@ -0,0 +1,52 @@ +--- +title: Blob.slice() +slug: Web/API/Blob/slice +tags: + - API + - Blob + - File + - File API + - Method + - Reference + - Section + - Subset + - data + - slice + - split +translation_of: Web/API/Blob/slice +--- +{{APIRef("File API")}} + +{{domxref("Blob")}} インターフェイスの **`slice()`** メソッドは、呼び出された blob のサブセットのデータを含む新しい `Blob` オブジェクトを作成して返します。 + +## 構文 + + var newBlob = blob.slice(start, end, contentType); + +### パラメータ + +- `start` {{optional_inline}} + - : 新しい {{domxref("Blob")}} に含める最初のバイトを示す {{domxref("Blob")}} へのインデックス。負の値を指定すると、{{domxref("Blob")}} の末尾から先頭へのオフセットとして扱われます。例えば、-10 は {{domxref("Blob")}} の最後のバイトから 10 番目になります。デフォルト値は 0 です。`start` にもとの {{domxref("Blob")}} のサイズよりも大きい値を指定すると、返される {{domxref("Blob")}} のサイズは 0 で、データは何も含まれません。 +- `end` {{optional_inline}} + - : 新しい {{domxref("Blob")}} に**含まれない**最初のバイトを示す {{domxref("Blob")}} へのインデックス。(つまり、このインデックスに正確に位置するバイトは含まれません)。負の値を指定すると、{{domxref("Blob")}} の末尾から先頭へのオフセットとして扱われます。例えば、-10 は {{domxref("Blob")}} の最後のバイトから 10 番目になります。デフォルト値は `size` です。 +- `contentType` {{optional_inline}} + - : 新しい {{domxref("Blob")}} に割り当てるコンテンツの型。これはその `type` プロパティの値になります。デフォルト値は空の文字列です。 + +### 戻り値 + +このメソッドが呼び出された Blob 内に含まれるデータの指定されたサブセットを含む新しい {{domxref("Blob")}} オブジェクト。元の Blob は変更されません。 + +## 仕様 + +| 仕様 | ステータス | コメント | +| ------------------------------------------------------------------------ | ---------------------------- | ---------- | +| {{SpecName("File API", "#dfn-slice", "Blob.slice()")}} | {{Spec2("File API")}} | 初期定義。 | + +## ブラウザの実装状況 + +{{Compat("api.Blob.slice")}} + +## あわせて参照 + +- {{domxref("Blob")}} +- [Web アプリケーションからのファイルの使用](/ja/docs/Web/API/File/Using_files_from_web_applications) diff --git a/files/ja/web/api/blob/stream/index.html b/files/ja/web/api/blob/stream/index.html deleted file mode 100644 index 083f2f2b961373..00000000000000 --- a/files/ja/web/api/blob/stream/index.html +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Blob.stream() -slug: Web/API/Blob/stream -tags: - - API - - Blob - - Change - - Convert - - File API - - Method - - ReadableStream - - Reference - - stream -translation_of: Web/API/Blob/stream ---- -

{{APIRef("File API")}}

- -

{{domxref("Blob")}} インターフェイスのstream() メソッドは、{{domxref("ReadableStream")}} を返します。これは、読み取り時に、Blob に含まれるデータを返します。

- -

シンタックス

- -
var stream = blob.stream();
- -

パラメータ

- -

なし

- -

戻り値

- -

読み込んだときに、Blob の内容を {{domxref("ReadableStream")}} で返します。

- -

使用上のメモ

- -

stream() と返された {{domxref("ReadableStream")}} を使用すると、いくつかの興味深い機能を得ることができます。

- - - -

仕様

- - - - - - - - - - - - - - -
仕様書ステータスコメント
{{SpecName("File API", "#dom-blob-stream", "Blob.stream()")}}{{Spec2("File API")}}
- -

ブラウザの互換性

- -

{{Compat("api.Blob.stream")}}

- -

あわせて参照

- - diff --git a/files/ja/web/api/blob/stream/index.md b/files/ja/web/api/blob/stream/index.md new file mode 100644 index 00000000000000..9ebb789debc74c --- /dev/null +++ b/files/ja/web/api/blob/stream/index.md @@ -0,0 +1,54 @@ +--- +title: Blob.stream() +slug: Web/API/Blob/stream +tags: + - API + - Blob + - Change + - Convert + - File API + - Method + - ReadableStream + - Reference + - stream +translation_of: Web/API/Blob/stream +--- +{{APIRef("File API")}} + +{{domxref("Blob")}} インターフェイスの**`stream()`** メソッドは、{{domxref("ReadableStream")}} を返します。これは、読み取り時に、`Blob` に含まれるデータを返します。 + +## シンタックス + + var stream = blob.stream(); + +### パラメータ + +なし + +### 戻り値 + +読み込んだときに、`Blob` の内容を {{domxref("ReadableStream")}} で返します。 + +## 使用上のメモ + +`stream()` と返された {{domxref("ReadableStream")}} を使用すると、いくつかの興味深い機能を得ることができます。 + +- 返されたストリーム上で{{domxref("ReadableStream.getReader", "getReader()")}} を呼び出して、{{domxref("ReadableStreamDefaultReader")}} インターフェイスの{{domxref("ReadableStreamDefaultReader.read", "read()")}} メソッドのようなメソッドを使用して、Blob からデータを読み取るために使用するオブジェクトを取得します +- 返されたストリームの {{domxref("ReadableStream.pipeTo", "pipeTo()")}} メソッドを呼び出して、Blob のデータを書き込み可能なストリームにパイプします +- 返されたストリームの {{domxref("ReadableStream.tee", "tee()")}} メソッドを呼び出して、可読ストリームを **tee** します。これは、2 つの新しい `ReadableStream` オブジェクトを含む配列を返し、それぞれが `Blob` の内容を返します +- 返されたストリームの {{domxref("ReadableStream.pipeThrough", "pipeThrough()")}} メソッドを呼び出して、ストリームを {{domxref("TransformStream")}} またはその他の可読および書き込み可能なペアにパイプします + +## 仕様 + +| 仕様書 | ステータス | コメント | +| -------------------------------------------------------------------------------- | ---------------------------- | -------- | +| {{SpecName("File API", "#dom-blob-stream", "Blob.stream()")}} | {{Spec2("File API")}} | | + +## ブラウザの互換性 + +{{Compat("api.Blob.stream")}} + +## あわせて参照 + +- {{domxref("Body.body")}} +- [Streams API](/ja/docs/Web/API/Streams_API) diff --git a/files/ja/web/api/blob/text/index.html b/files/ja/web/api/blob/text/index.html deleted file mode 100644 index 4dfef08d021bd8..00000000000000 --- a/files/ja/web/api/blob/text/index.html +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: Blob.text() -slug: Web/API/Blob/text -tags: - - API - - Blob - - File API - - Method - - Reference - - String - - Text - - Utf-8 - - get - - read -translation_of: Web/API/Blob/text ---- -
{{APIRef("File API")}}
- -

{{domxref("Blob")}} インターフェイスの text() メソッドは {{jsxref("Promise")}} を返しますが、それは Blob の内容を含む文字列で解決され、UTF-8 として解釈されます。

- - - -

シンタックス

- -
var textPromise = blob.text();
-
-blob.text().then(text => /* テキストに対して処理をする */);
-
-var text = await blob.text();
-
- -

パラメータ

- -

なし

- -

戻り値

- -

Blob のデータをテキスト文字列として含む {{domxref("USVString")}} で解決する Promise。データは常に UTF-8 形式であると推定されます。

- -

使用上のメモ

- -

{{domxref("FileReader")}} メソッド {{domxref("FileReader.readAsText", "readAsText()")}} は、同様の機能を実行する古いメソッドです。これは、Blob と {{domxref("File")}} オブジェクトの両方で動作します。主な違いは2つあります。

- - - -

仕様

- - - - - - - - - - - - - - -
仕様書ステータスコメント
{{SpecName("File API", "#dom-blob-text", "Blob.text()")}}{{Spec2("File API")}}
- -

ブラウザの互換性

- -

{{Compat("api.Blob.text")}}

- -

あわせて参照

- - diff --git a/files/ja/web/api/blob/text/index.md b/files/ja/web/api/blob/text/index.md new file mode 100644 index 00000000000000..f3b81850023e21 --- /dev/null +++ b/files/ja/web/api/blob/text/index.md @@ -0,0 +1,58 @@ +--- +title: Blob.text() +slug: Web/API/Blob/text +tags: + - API + - Blob + - File API + - Method + - Reference + - String + - Text + - Utf-8 + - get + - read +translation_of: Web/API/Blob/text +--- +{{APIRef("File API")}} + +{{domxref("Blob")}} インターフェイスの **`text()`** メソッドは {{jsxref("Promise")}} を返しますが、それは Blob の内容を含む文字列で解決され、UTF-8 として解釈されます。 + +## シンタックス + + var textPromise = blob.text(); + + blob.text().then(text => /* テキストに対して処理をする */); + + var text = await blob.text(); + +### パラメータ + +なし + +### 戻り値 + +Blob のデータをテキスト文字列として含む {{domxref("USVString")}} で解決する Promise。データは*常に* UTF-8 形式であると推定されます。 + +## 使用上のメモ + +{{domxref("FileReader")}} メソッド {{domxref("FileReader.readAsText", "readAsText()")}} は、同様の機能を実行する古いメソッドです。これは、`Blob` と {{domxref("File")}} オブジェクトの両方で動作します。主な違いは 2 つあります。 + +- `Blob.text()` が Promise を返すのに対し、`FileReader.readAsText()` はイベントベースの API です +- `Blob.text()` は常にエンコーディングとして UTF-8 を使用しますが、`FileReader.readAsText()` は Blob のタイプと指定されたエンコーディング名に応じて異なるエンコーディングを使用することができます + +## 仕様 + +| 仕様書 | ステータス | コメント | +| ---------------------------------------------------------------------------- | ---------------------------- | -------- | +| {{SpecName("File API", "#dom-blob-text", "Blob.text()")}} | {{Spec2("File API")}} | | + +## ブラウザの互換性 + +{{Compat("api.Blob.text")}} + +## あわせて参照 + +- {{domxref("Body.text()")}} +- [Streams API](/ja/docs/Web/API/Streams_API) +- {{domxref("FileReader.readAsText()")}} diff --git a/files/ja/web/api/blob/type/index.html b/files/ja/web/api/blob/type/index.html deleted file mode 100644 index 6bad42e0525d82..00000000000000 --- a/files/ja/web/api/blob/type/index.html +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: Blob.type -slug: Web/API/Blob/type -tags: - - API - - Blob - - DOM - - File - - File API - - Format - - MIME - - MIME Type - - Property - - Reference - - Type -translation_of: Web/API/Blob/type ---- -
{{APIRef("File API")}}
- -

{{domxref("Blob")}} オブジェクトの type プロパティは、ファイルの {{Glossary("MIME type")}} を返します。

- -

シンタックス

- -
var mimetype = blob.type
- -

- -

ファイルの MIME タイプを含む {{domxref("DOMString")}}、または型が特定できなかった場合は空文字列を指定します。

- -

- -

この例では、ユーザーにいくつかのファイルを選択してもらい、各ファイルが指定された画像ファイルタイプのセットのいずれかであるかどうかを確認します。

- -
var i, fileInput, files, allowedFileTypes;
-
-// fileInput は HTMLInputElement <input type="file" multiple id="myfileinput"> です。
-fileInput = document.getElementById("myfileinput");
-
-// files は FileList オブジェクトです (NodeList に似ています)。
-files = fileInput.files;
-
-// 私たちのアプリケーションは GIF、PNG、JPEG 画像のみを許可しています。
-allowedFileTypes = ["image/png", "image/jpeg", "image/gif"];
-
-for (i = 0; i < files.length; i++) {
-  // file.type が許可されたファイルタイプであるかどうかをテストします。
-  if (allowedFileTypes.indexOf(files[i].type) > -1) {
-    // マッチしたファイルタイプは、許可されているファイルタイプの一つです。ここで何か処理を行います。
-  }
-});
-
- -

仕様

- - - - - - - - - - - - - - -
仕様書ステータスコメント
{{SpecName('File API', '#dfn-type', 'Blob.type')}}{{Spec2('File API')}}初期定義
- -

ブラウザの互換性

- -
-

{{Compat("api.Blob.type")}}

-
- -

あわせて参照

- - diff --git a/files/ja/web/api/blob/type/index.md b/files/ja/web/api/blob/type/index.md new file mode 100644 index 00000000000000..3cf38a9086e9ed --- /dev/null +++ b/files/ja/web/api/blob/type/index.md @@ -0,0 +1,67 @@ +--- +title: Blob.type +slug: Web/API/Blob/type +tags: + - API + - Blob + - DOM + - File + - File API + - Format + - MIME + - MIME Type + - Property + - Reference + - Type +translation_of: Web/API/Blob/type +--- +{{APIRef("File API")}} + +{{domxref("Blob")}} オブジェクトの **`type`** プロパティは、ファイルの {{Glossary("MIME type")}} を返します。 + +## シンタックス + + var mimetype = blob.type + +### 値 + +ファイルの MIME タイプを含む {{domxref("DOMString")}}、または型が特定できなかった場合は空文字列を指定します。 + +## 例 + +この例では、ユーザーにいくつかのファイルを選択してもらい、各ファイルが指定された画像ファイルタイプのセットのいずれかであるかどうかを確認します。 + +```js +var i, fileInput, files, allowedFileTypes; + +// fileInput は HTMLInputElement です。 +fileInput = document.getElementById("myfileinput"); + +// files は FileList オブジェクトです (NodeList に似ています)。 +files = fileInput.files; + +// 私たちのアプリケーションは GIF、PNG、JPEG 画像のみを許可しています。 +allowedFileTypes = ["image/png", "image/jpeg", "image/gif"]; + +for (i = 0; i < files.length; i++) { + // file.type が許可されたファイルタイプであるかどうかをテストします。 + if (allowedFileTypes.indexOf(files[i].type) > -1) { + // マッチしたファイルタイプは、許可されているファイルタイプの一つです。ここで何か処理を行います。 + } +}); +``` + +## 仕様 + +| 仕様書 | ステータス | コメント | +| -------------------------------------------------------------------- | ---------------------------- | -------- | +| {{SpecName('File API', '#dfn-type', 'Blob.type')}} | {{Spec2('File API')}} | 初期定義 | + +## ブラウザの互換性 + +{{Compat("api.Blob.type")}} + +## あわせて参照 + +- {{domxref("Blob")}} +- [Web アプリケーションからのファイルの使用](/ja/docs/Web/API/File/Using_files_from_web_applications) diff --git a/files/ja/web/api/blobevent/blobevent/index.html b/files/ja/web/api/blobevent/blobevent/index.html deleted file mode 100644 index 644b631e57617a..00000000000000 --- a/files/ja/web/api/blobevent/blobevent/index.html +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: BlobEvent() -slug: Web/API/BlobEvent/BlobEvent -tags: - - API - - BlobEvent - - Constructor - - DOM - - DOM Reference - - Experimental - - Media Stream Encoding - - Reference -translation_of: Web/API/BlobEvent/BlobEvent ---- -

{{APIRef("Media Capture and Streams")}}{{seeCompatTable}}

- -

BlobEvent() コンストラクターは、新たに生成され {{domxref("Blob")}} に関連付けられた {{domxref("BlobEvent")}} オブジェクトを返します。

- -

構文

- -
blobEvent = new BlobEvent({data: aSpecificBlob}[, timecode]);
-
- -

引数

- -

BlobEvent() コンストラクターは、{{domxref("Event.Event", "Event()")}} からの引数も継承します。

- -
-
data
-
イベントに関連付けられた {{domxref("Blob")}}。
-
timecode {{optional_inline}}
-
blob イベントの初期化に使用される {{domxref("DOMHighResTimeStamp")}}。
-
- -

仕様

- - - - - - - - - - - - - - -
仕様書策定状況備考
{{SpecName('MediaStream Recording', '#dom-blobevent-blobevent', 'BlobEvent: BlobEvent')}}{{Spec2('MediaStream Recording')}}初期定義。
- -

ブラウザーの実装状況

- - - -

{{Compat("api.BlobEvent.BlobEvent")}}

- -

関連項目

- - diff --git a/files/ja/web/api/blobevent/blobevent/index.md b/files/ja/web/api/blobevent/blobevent/index.md new file mode 100644 index 00000000000000..309050755c3f4e --- /dev/null +++ b/files/ja/web/api/blobevent/blobevent/index.md @@ -0,0 +1,44 @@ +--- +title: BlobEvent() +slug: Web/API/BlobEvent/BlobEvent +tags: + - API + - BlobEvent + - Constructor + - DOM + - DOM Reference + - Experimental + - Media Stream Encoding + - Reference +translation_of: Web/API/BlobEvent/BlobEvent +--- +{{APIRef("Media Capture and Streams")}}{{seeCompatTable}} + +**`BlobEvent()`** コンストラクターは、新たに生成され {{domxref("Blob")}} に関連付けられた {{domxref("BlobEvent")}} オブジェクトを返します。 + +## 構文 + + blobEvent = new BlobEvent({data: aSpecificBlob}[, timecode]); + +### 引数 + +_`BlobEvent()` コンストラクターは、{{domxref("Event.Event", "Event()")}} からの引数も継承します。_ + +- `data` + - : イベントに関連付けられた {{domxref("Blob")}}。 +- `timecode` {{optional_inline}} + - : blob イベントの初期化に使用される {{domxref("DOMHighResTimeStamp")}}。 + +## 仕様 + +| 仕様書 | 策定状況 | 備考 | +| ------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------- | ---------- | +| {{SpecName('MediaStream Recording', '#dom-blobevent-blobevent', 'BlobEvent: BlobEvent')}} | {{Spec2('MediaStream Recording')}} | 初期定義。 | + +## ブラウザーの実装状況 + +{{Compat("api.BlobEvent.BlobEvent")}} + +## 関連項目 + +- このメソッドが属する {{domxref("BlobEvent")}} インターフェイス。 diff --git a/files/ja/web/api/blobevent/data/index.html b/files/ja/web/api/blobevent/data/index.html deleted file mode 100644 index 867484937b7e62..00000000000000 --- a/files/ja/web/api/blobevent/data/index.html +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: BlobEvent.data -slug: Web/API/BlobEvent/data -tags: - - API - - BlobEvent - - DOM - - DOM Reference - - Experimental - - Media Stream Recording - - Property - - Reference -translation_of: Web/API/BlobEvent/data ---- -

{{ apiref("Media Capture and Streams") }}

- -

{{ SeeCompatTable() }}

- -

BlobEvent.data 読み取り専用プロパティは、イベントに関連付けられた {{domxref("Blob")}} を表します。

- -

構文

- -
associatedBlob = BlobEvent.data
- -

仕様

- - - - - - - - - - - - - - -
仕様書策定状況備考
{{SpecName('MediaStream Recording', '#dom-blobevent-data', 'BlobEvent.data')}}{{Spec2('MediaStream Recording')}}初期定義。
- -

ブラウザーの実装状況

- - - -

{{Compat("api.BlobEvent.data")}}

- -

関連項目

- - diff --git a/files/ja/web/api/blobevent/data/index.md b/files/ja/web/api/blobevent/data/index.md new file mode 100644 index 00000000000000..4b3103beb14698 --- /dev/null +++ b/files/ja/web/api/blobevent/data/index.md @@ -0,0 +1,37 @@ +--- +title: BlobEvent.data +slug: Web/API/BlobEvent/data +tags: + - API + - BlobEvent + - DOM + - DOM Reference + - Experimental + - Media Stream Recording + - Property + - Reference +translation_of: Web/API/BlobEvent/data +--- +{{ apiref("Media Capture and Streams") }} + +{{ SeeCompatTable() }} + +**`BlobEvent.data`** 読み取り専用プロパティは、イベントに関連付けられた {{domxref("Blob")}} を表します。 + +## 構文 + + associatedBlob = BlobEvent.data + +## 仕様 + +| 仕様書 | 策定状況 | 備考 | +| -------------------------------------------------------------------------------------------------------- | -------------------------------------------- | ---------- | +| {{SpecName('MediaStream Recording', '#dom-blobevent-data', 'BlobEvent.data')}} | {{Spec2('MediaStream Recording')}} | 初期定義。 | + +## ブラウザーの実装状況 + +{{Compat("api.BlobEvent.data")}} + +## 関連項目 + +- このプロパティが属する {{domxref("BlobEvent")}} インターフェイス。 diff --git a/files/ja/web/api/blobevent/index.html b/files/ja/web/api/blobevent/index.html deleted file mode 100644 index 7542b6b92bfa67..00000000000000 --- a/files/ja/web/api/blobevent/index.html +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: BlobEvent -slug: Web/API/BlobEvent -tags: - - API - - Audio - - Blob - - Interface - - Media - - MediaStream Recording - - MediaStream Recording API - - Recording Media - - Reference - - Video - - events -translation_of: Web/API/BlobEvent ---- -

{{APIRef("Media Capture and Streams")}}

- -

BlobEvent インターフェイスは、{{domxref("Blob")}} に関連付けられたイベントを表します。 これらの blob は、一般的にメディアコンテンツと関連付けられますが、必ずしもそうとは限りません。

- -

コンストラクター

- -
-
{{domxref("BlobEvent.BlobEvent", "BlobEvent()")}}
-
与えられた引数で BlobEvent イベントを生成する。
-
- -

プロパティ

- -

自身の親 {{domxref("Event")}} からのプロパティを継承します。

- -
-
{{domxref("BlobEvent.data")}} {{readonlyInline}}
-
イベントと関連付けられたデータを表す {{domxref("Blob")}}。 イベントは、特定の {{domxref("Blob")}} で何かが起こることにより、{{domxref("EventTarget")}} 上で発生します。
-
{{domxref("BlobEvent.timecode")}} {{readonlyinline}}
-
data 内の最初のチャンクのタイムスタンプと、このレコーダーによって生成された最初の BlobEvent 内の最初のチャンクのタイムスタンプとの差を示す {{domxref("DOMHighResTimeStamp")}}。 最初に生成された BlobEventtimecode はゼロである必要はないことに注意してください。
-
- -

メソッド

- -

固有のメソッドはありません。 自身の親 {{domxref("Event")}} からのメソッドを継承します。

- -

仕様

- - - - - - - - - - - - - - -
仕様書策定状況備考
{{SpecName('MediaStream Recording', '#blobevent-section', 'BlobEvent')}}{{Spec2('MediaStream Recording')}}初期定義。
- -

ブラウザーの実装状況

- - - -

{{Compat("api.BlobEvent")}}

- -

関連項目

- - diff --git a/files/ja/web/api/blobevent/index.md b/files/ja/web/api/blobevent/index.md new file mode 100644 index 00000000000000..470b66e6f6b2e5 --- /dev/null +++ b/files/ja/web/api/blobevent/index.md @@ -0,0 +1,54 @@ +--- +title: BlobEvent +slug: Web/API/BlobEvent +tags: + - API + - Audio + - Blob + - Interface + - Media + - MediaStream Recording + - MediaStream Recording API + - Recording Media + - Reference + - Video + - events +translation_of: Web/API/BlobEvent +--- +{{APIRef("Media Capture and Streams")}} + +**`BlobEvent`** インターフェイスは、{{domxref("Blob")}} に関連付けられたイベントを表します。 これらの blob は、一般的にメディアコンテンツと関連付けられますが、必ずしもそうとは限りません。 + +## コンストラクター + +- {{domxref("BlobEvent.BlobEvent", "BlobEvent()")}} + - : 与えられた引数で `BlobEvent` イベントを生成する。 + +## プロパティ + +_自身の親 {{domxref("Event")}} からのプロパティを継承します。_ + +- {{domxref("BlobEvent.data")}} {{readonlyInline}} + - : イベントと関連付けられたデータを表す {{domxref("Blob")}}。 イベントは、特定の {{domxref("Blob")}} で何かが起こることにより、{{domxref("EventTarget")}} 上で発生します。 +- {{domxref("BlobEvent.timecode")}} {{readonlyinline}} + - : `data` 内の最初のチャンクのタイムスタンプと、このレコーダーによって生成された最初の `BlobEvent` 内の最初のチャンクのタイムスタンプとの差を示す {{domxref("DOMHighResTimeStamp")}}。 最初に生成された `BlobEvent` の `timecode` はゼロである必要はないことに注意してください。 + +## メソッド + +固有のメソッドはありません。 _自身の親 {{domxref("Event")}} からのメソッドを継承します。_ + +## 仕様 + +| 仕様書 | 策定状況 | 備考 | +| ------------------------------------------------------------------------------------------------ | -------------------------------------------- | ---------- | +| {{SpecName('MediaStream Recording', '#blobevent-section', 'BlobEvent')}} | {{Spec2('MediaStream Recording')}} | 初期定義。 | + +## ブラウザーの実装状況 + +{{Compat("api.BlobEvent")}} + +## 関連項目 + +- {{domxref("Event")}} 基本インターフェイス +- [MediaStream Recording API](/ja/docs/Web/API/MediaStream_Recording_API): メディアのチャンクの準備ができるたびに `BlobEvent` オブジェクトを送信します。 +- [Media​Stream Recording API の使用](/ja/docs/Web/API/MediaStream_Recording_API/Using_the_MediaStream_Recording_API) diff --git a/files/ja/web/api/blobevent/timecode/index.html b/files/ja/web/api/blobevent/timecode/index.html deleted file mode 100644 index fa0a0a428785b0..00000000000000 --- a/files/ja/web/api/blobevent/timecode/index.html +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: BlobEvent.timecode -slug: Web/API/BlobEvent/timecode -tags: - - API - - BlobEvent - - Media - - Media Stream Recording - - Property - - Reference -translation_of: Web/API/BlobEvent/timecode ---- -

{{SeeCompatTable}}{{APIRef("Media Capture and Streams")}}

- -

{{domxref("BlobEvent")}} インタフェースの timecode 読み取り専用プロパティは、データ内の最初のチャンクのタイムスタンプと、このレコーダによって生成された最初の BlobEvent 内の最初のチャンクのタイムスタンプとの差を示す {{domxref("DOMHighResTimeStamp")}} です。 最初に生成された BlobEventtimecode はゼロである必要はないことに注意してください。

- -

構文

- -
var timecode = BlobEvent.timecode
- -

- -

{{domxref("DOMHighResTimeStamp")}}。

- -

仕様

- - - - - - - - - - - - - - -
仕様書策定状況備考
{{SpecName('MediaStream Recording','#dom-blobevent-timecode','timecode')}}{{Spec2('MediaStream Recording')}}初期定義。
- -

ブラウザーの実装状況

- -
- - -

{{Compat("api.BlobEvent.timecode")}}

-
diff --git a/files/ja/web/api/blobevent/timecode/index.md b/files/ja/web/api/blobevent/timecode/index.md new file mode 100644 index 00000000000000..112977b97a2b86 --- /dev/null +++ b/files/ja/web/api/blobevent/timecode/index.md @@ -0,0 +1,33 @@ +--- +title: BlobEvent.timecode +slug: Web/API/BlobEvent/timecode +tags: + - API + - BlobEvent + - Media + - Media Stream Recording + - Property + - Reference +translation_of: Web/API/BlobEvent/timecode +--- +{{SeeCompatTable}}{{APIRef("Media Capture and Streams")}} + +{{domxref("BlobEvent")}} インタフェースの **`timecode`** 読み取り専用プロパティは、データ内の最初のチャンクのタイムスタンプと、このレコーダによって生成された最初の `BlobEvent` 内の最初のチャンクのタイムスタンプとの差を示す {{domxref("DOMHighResTimeStamp")}} です。 最初に生成された `BlobEvent` の `timecode` はゼロである必要はないことに注意してください。 + +## 構文 + + var timecode = BlobEvent.timecode + +### 値 + +{{domxref("DOMHighResTimeStamp")}}。 + +## 仕様 + +| 仕様書 | 策定状況 | 備考 | +| ---------------------------------------------------------------------------------------------------- | -------------------------------------------- | ---------- | +| {{SpecName('MediaStream Recording','#dom-blobevent-timecode','timecode')}} | {{Spec2('MediaStream Recording')}} | 初期定義。 | + +## ブラウザーの実装状況 + +{{Compat("api.BlobEvent.timecode")}} diff --git a/files/ja/web/api/broadcast_channel_api/index.html b/files/ja/web/api/broadcast_channel_api/index.html deleted file mode 100644 index ddfe0f7c9c816f..00000000000000 --- a/files/ja/web/api/broadcast_channel_api/index.html +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: Broadcast Channel API -slug: Web/API/Broadcast_Channel_API -tags: - - API - - Broadcast Channel API - - HTML API - - Overview - - Reference -translation_of: Web/API/Broadcast_Channel_API ---- -

{{DefaultAPISidebar("Broadcast Channel API")}}

- -

Broadcast Channel API(放送チャンネル API)を使用すると、{{glossary("browsing context", "閲覧コンテキスト")}}(つまり、ウィンドウタブフレームiframe)間で、同じ{{glossary("origin","オリジン")}}(通常は同じサイトのページ)を使用して簡単に通信できます。

- -

{{AvailableInWorkers}}

- -

放送チャンネルは、名前が付けられ、特定のオリジンに結びつけられています。

- -

基になるチャンネルをリッスンしている {{domxref("BroadcastChannel")}} オブジェクトを作成することで、投稿されたメッセージを受信できます。 興味深い点は、通信したい iframe やワーカーへの参照を維持する必要がもうないということです。 それらは単に {{domxref("BroadcastChannel")}} を構築することによって特定のチャンネルを「購読する(subscribe)」ことができ、それらすべての間で全二重(双方向)通信を行うことができます。

- -

Broadcast Channel API の原理

- -

放送チャンネルのインターフェイス

- -

チャンネルの作成または参加

- -

BroadcastChannel インターフェイスは非常に単純です。 クライアントは {{domxref("BroadcastChannel")}} オブジェクトを作成することによって特定の放送チャンネルに参加します。 {{domxref("BroadcastChannel.BroadcastChannel","コンストラクタ")}}は、それを識別するために使用する単一のパラメーターである、チャネルの名前を取ります。 放送チャンネルに最初に接続した場合は、基になるリソースが作成されます。

- -
// 放送チャンネルへの接続
-var bc = new BroadcastChannel('test_channel');
-
- -

メッセージの送信

- -

メッセージを投稿するのは簡単です。 BroadcastChannel オブジェクトの {{domxref("BroadcastChannel.postMessage", "postMessage()")}} メソッドを呼び出すだけで十分です。 このメソッドは任意のオブジェクトを引数として取ります。 非常に単純な例は、次のように {{domxref("DOMString")}} テキストメッセージです。

- -
// 非常に単純なメッセージの送信例
-bc.postMessage('This is a test message.');
-
- -

{{domxref("DOMString")}} だけでなく、あらゆる種類のオブジェクトを送信できます。 API は意味論をメッセージに関連付けないため、どのような種類のメッセージを想定し、それをどう処理するかを知るのは、チャネルの参加者次第です。

- -

メッセージの受信

- -

メッセージが投稿されると、このチャンネルに接続されている各 {{domxref("BroadcastChannel")}} オブジェクトに {{event("message")}} イベントが送出されます。 デフォルトでは何もしませんが、{{domxref("BroadcastChannel.onmessage", "onmessage")}} イベントハンドラを使用して新しい関数を実装できます。

- -
// イベントをコンソールに記録するだけの
-// 単純なイベントハンドラの例
-bc.onmessage = function (ev) { console.log(ev); }
-
- -

チャンネルの切断

- -

チャネルを去るには、オブジェクトの {{domxref("BroadcastChannel.close", "close()")}} メソッドを呼び出す必要があります。 これにより、オブジェクトと基になるチャネル間のリンクを切断し、ガベージコレクションをすることができます。

- -
// チャンネルの切断
-bc.close()
-
- -

結び

- -

Broadcast Channel API は非常に単純な API であり、自己完結型のインターフェイスによってコンテキスト間通信が可能です。 ユーザーがアカウントにログインしたときなど、同じサイトオリジン環境内の他のタブでユーザーの操作を検出するために使用できます。 メッセージングプロトコルは定義されておらず、さまざまなコンテキストのさまざまなドキュメントがそれ自体を実装する必要があります。 ネゴシエーションも仕様からの要件もありません。

- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('HTML WHATWG', "comms.html#broadcasting-to-other-browsing-contexts", "The Broadcast Channel API")}}{{Spec2('HTML WHATWG')}}初期定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.BroadcastChannel")}}

- -

関連情報

- - diff --git a/files/ja/web/api/broadcast_channel_api/index.md b/files/ja/web/api/broadcast_channel_api/index.md new file mode 100644 index 00000000000000..90697311dfc185 --- /dev/null +++ b/files/ja/web/api/broadcast_channel_api/index.md @@ -0,0 +1,81 @@ +--- +title: Broadcast Channel API +slug: Web/API/Broadcast_Channel_API +tags: + - API + - Broadcast Channel API + - HTML API + - Overview + - Reference +translation_of: Web/API/Broadcast_Channel_API +--- +{{DefaultAPISidebar("Broadcast Channel API")}} + +**Broadcast Channel API**(放送チャンネル API)を使用すると、{{glossary("browsing context", "閲覧コンテキスト")}}(つまり、_ウィンドウ_、_タブ_、_フレーム_、_iframe_)間で、同じ{{glossary("origin","オリジン")}}(通常は同じサイトのページ)を使用して簡単に通信できます。 + +{{AvailableInWorkers}} + +放送チャンネルは、名前が付けられ、特定のオリジンに結びつけられています。 + +基になるチャンネルをリッスンしている {{domxref("BroadcastChannel")}} オブジェクトを作成することで、投稿されたメッセージを受信できます。 興味深い点は、通信したい iframe やワーカーへの参照を維持する必要がもうないということです。 それらは単に {{domxref("BroadcastChannel")}} を構築することによって特定のチャンネルを「購読する(subscribe)」ことができ、それらすべての間で全二重(双方向)通信を行うことができます。 + +![Broadcast Channel API の原理](https://mdn.mozillademos.org/files/9945/BroadcastChannel.png) + +## 放送チャンネルのインターフェイス + +### チャンネルの作成または参加 + +`BroadcastChannel` インターフェイスは非常に単純です。 クライアントは {{domxref("BroadcastChannel")}} オブジェクトを作成することによって特定の放送チャンネルに参加します。 {{domxref("BroadcastChannel.BroadcastChannel","コンストラクタ")}}は、それを識別するために使用する単一のパラメーターである、チャネルの*名前*を取ります。 放送チャンネルに最初に接続した場合は、基になるリソースが作成されます。 + +```js +// 放送チャンネルへの接続 +var bc = new BroadcastChannel('test_channel'); +``` + +### メッセージの送信 + +メッセージを投稿するのは簡単です。 `BroadcastChannel` オブジェクトの {{domxref("BroadcastChannel.postMessage", "postMessage()")}} メソッドを呼び出すだけで十分です。 このメソッドは任意のオブジェクトを引数として取ります。 非常に単純な例は、次のように {{domxref("DOMString")}} テキストメッセージです。 + +```js +// 非常に単純なメッセージの送信例 +bc.postMessage('This is a test message.'); +``` + +{{domxref("DOMString")}} だけでなく、あらゆる種類のオブジェクトを送信できます。 API は意味論をメッセージに関連付けないため、どのような種類のメッセージを想定し、それをどう処理するかを知るのは、チャネルの参加者次第です。 + +### メッセージの受信 + +メッセージが投稿されると、このチャンネルに接続されている各 {{domxref("BroadcastChannel")}} オブジェクトに {{event("message")}} イベントが送出されます。 デフォルトでは何もしませんが、{{domxref("BroadcastChannel.onmessage", "onmessage")}} イベントハンドラを使用して新しい関数を実装できます。 + +```js +// イベントをコンソールに記録するだけの +// 単純なイベントハンドラの例 +bc.onmessage = function (ev) { console.log(ev); } +``` + +### チャンネルの切断 + +チャネルを去るには、オブジェクトの {{domxref("BroadcastChannel.close", "close()")}} メソッドを呼び出す必要があります。 これにより、オブジェクトと基になるチャネル間のリンクを切断し、ガベージコレクションをすることができます。 + +```js +// チャンネルの切断 +bc.close() +``` + +## 結び + +Broadcast Channel API は非常に単純な API であり、自己完結型のインターフェイスによってコンテキスト間通信が可能です。 ユーザーがアカウントにログインしたときなど、同じサイトオリジン環境内の他のタブでユーザーの操作を検出するために使用できます。 メッセージングプロトコルは定義されておらず、さまざまなコンテキストのさまざまなドキュメントがそれ自体を実装する必要があります。 ネゴシエーションも仕様からの要件もありません。 + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- | -------- | +| {{SpecName('HTML WHATWG', "comms.html#broadcasting-to-other-browsing-contexts", "The Broadcast Channel API")}} | {{Spec2('HTML WHATWG')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.BroadcastChannel")}} + +## 関連情報 + +- {{domxref("BroadcastChannel")}}: これを実装するインターフェイス。 diff --git a/files/ja/web/api/broadcastchannel/broadcastchannel/index.html b/files/ja/web/api/broadcastchannel/broadcastchannel/index.html deleted file mode 100644 index 7d38827c8eb661..00000000000000 --- a/files/ja/web/api/broadcastchannel/broadcastchannel/index.html +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: BroadcastChannel() -slug: Web/API/BroadcastChannel/BroadcastChannel -tags: - - API - - Broadcast Channel API - - BroadcastChannel - - Constructor - - Experimental - - HTML API - - Reference -translation_of: Web/API/BroadcastChannel/BroadcastChannel ---- -

{{APIRef("BroadCastChannel API")}}

- -

BroadcastChannel() コンストラクタは新しい {{domxref("BroadcastChannel")}} を作成し、それを基礎となるチャネルに接続します。

- -

{{AvailableInWorkers}}

- -

構文

- -
 channel = new BroadcastChannel(channel);
- -

- -
-
channel
-
チャネルの名前を表す {{domxref("DOMString")}} です。 同じ{{glossary("origin","オリジン")}}を持つすべての{{glossary("browsing context", "閲覧コンテキスト")}}に対して、この名前を持つ単一のチャンネルがあります。
-
- -

- -
// "internal_notification" チャンネルをリッスンする新しいチャンネルを作成します。
-
-var bc = new BroadcastChannel('internal_notification');
-bc.postMessage('New listening connected!');
-
- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('HTML WHATWG', "comms.html#dom-broadcastchannel", "BroadcastChannel()")}}{{Spec2('HTML WHATWG')}}初期定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.BroadcastChannel.BroadcastChannel")}}

- -

関連情報

- - diff --git a/files/ja/web/api/broadcastchannel/broadcastchannel/index.md b/files/ja/web/api/broadcastchannel/broadcastchannel/index.md new file mode 100644 index 00000000000000..f4f7083b94ee04 --- /dev/null +++ b/files/ja/web/api/broadcastchannel/broadcastchannel/index.md @@ -0,0 +1,50 @@ +--- +title: BroadcastChannel() +slug: Web/API/BroadcastChannel/BroadcastChannel +tags: + - API + - Broadcast Channel API + - BroadcastChannel + - Constructor + - Experimental + - HTML API + - Reference +translation_of: Web/API/BroadcastChannel/BroadcastChannel +--- +{{APIRef("BroadCastChannel API")}} + +**`BroadcastChannel()`** コンストラクタは新しい {{domxref("BroadcastChannel")}} を作成し、それを基礎となるチャネルに接続します。 + +{{AvailableInWorkers}} + +## 構文 + + channel = new BroadcastChannel(channel); + +### 値 + +- _channel_ + - : チャネルの名前を表す {{domxref("DOMString")}} です。 同じ{{glossary("origin","オリジン")}}を持つすべての{{glossary("browsing context", "閲覧コンテキスト")}}に対して、この名前を持つ単一のチャンネルがあります。 + +## 例 + +```js +// "internal_notification" チャンネルをリッスンする新しいチャンネルを作成します。 + +var bc = new BroadcastChannel('internal_notification'); +bc.postMessage('New listening connected!'); +``` + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------------------------------------------------------- | -------------------------------- | -------- | +| {{SpecName('HTML WHATWG', "comms.html#dom-broadcastchannel", "BroadcastChannel()")}} | {{Spec2('HTML WHATWG')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.BroadcastChannel.BroadcastChannel")}} + +## 関連情報 + +- {{domxref("BroadcastChannel")}}: これが属するインターフェース。 diff --git a/files/ja/web/api/broadcastchannel/close/index.html b/files/ja/web/api/broadcastchannel/close/index.html deleted file mode 100644 index d573ea251b6140..00000000000000 --- a/files/ja/web/api/broadcastchannel/close/index.html +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: BroadcastChannel.close() -slug: Web/API/BroadcastChannel/close -tags: - - API - - Broadcast Channel API - - BroadcastChannel - - Experimental - - HTML API - - Method - - Reference -translation_of: Web/API/BroadcastChannel/close ---- -

{{APIRef("BroadCastChannel API")}}

- -

BroadcastChannel.close() は、基礎となるチャネルへの接続を終了し、オブジェクトをガベージコレクションできるようにします。 このチャンネルがもう必要ないことをブラウザーが知る他の方法はないので、これは実行するのに必要なステップです。

- -

{{AvailableInWorkers}}

- -

構文

- -
var str = channel.close();
-
- -

- -
// チャンネルに接続
-var bc = new BroadcastChannel('test_channel');
-
-// その他の操作(postMessage など)
-
-// 終了したら、チャンネルから切断します
-bc.close();
-
- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('HTML WHATWG', "comms.html#dom-broadcastchannel-close", "BroadcastChannel.close()")}}{{Spec2('HTML WHATWG')}}初期定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.BroadcastChannel.close")}}

- -

関連情報

- - diff --git a/files/ja/web/api/broadcastchannel/close/index.md b/files/ja/web/api/broadcastchannel/close/index.md new file mode 100644 index 00000000000000..0f801b46864d70 --- /dev/null +++ b/files/ja/web/api/broadcastchannel/close/index.md @@ -0,0 +1,48 @@ +--- +title: BroadcastChannel.close() +slug: Web/API/BroadcastChannel/close +tags: + - API + - Broadcast Channel API + - BroadcastChannel + - Experimental + - HTML API + - Method + - Reference +translation_of: Web/API/BroadcastChannel/close +--- +{{APIRef("BroadCastChannel API")}} + +**`BroadcastChannel.close()`** は、基礎となるチャネルへの接続を終了し、オブジェクトをガベージコレクションできるようにします。 このチャンネルがもう必要ないことをブラウザーが知る他の方法はないので、これは実行するのに必要なステップです。 + +{{AvailableInWorkers}} + +## 構文 + + var str = channel.close(); + +## 例 + +```js +// チャンネルに接続 +var bc = new BroadcastChannel('test_channel'); + +// その他の操作(postMessage など) + +// 終了したら、チャンネルから切断します +bc.close(); +``` + +## 仕様 + +| 仕様 | 状態 | コメント | +| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- | -------- | +| {{SpecName('HTML WHATWG', "comms.html#dom-broadcastchannel-close", "BroadcastChannel.close()")}} | {{Spec2('HTML WHATWG')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.BroadcastChannel.close")}} + +## 関連情報 + +- {{domxref("BroadcastChannel")}}: これが属するインターフェース。 diff --git a/files/ja/web/api/broadcastchannel/index.html b/files/ja/web/api/broadcastchannel/index.html deleted file mode 100644 index e42d468578ade8..00000000000000 --- a/files/ja/web/api/broadcastchannel/index.html +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: BroadcastChannel -slug: Web/API/BroadcastChannel -tags: - - API - - Broadcast Channel API - - Experimental - - HTML API - - Interface - - Reference -translation_of: Web/API/BroadcastChannel ---- -

{{APIRef("Broadcast Channel API")}}

- -

BroadcastChannel インターフェイスは、特定の{{glossary("origin","オリジン")}}の{{glossary("browsing context","閲覧コンテキスト")}}が購読できる名前付きチャネルを表します。 それは、同じオリジンの異なるドキュメント間(異なるウィンドウ、タブ、フレーム、iframe)の通信を可能にします。 メッセージは、チャンネルをリッスンしているすべての BroadcastChannel オブジェクトで発生する {{event("message")}} イベントを介して放送されます。

- -

{{AvailableInWorkers}}

- -

コンストラクタ

- -
-
{{domxref("BroadcastChannel.BroadcastChannel", "BroadcastChannel()")}}
-
名前付きチャンネルにリンクするオブジェクトを作成します。
-
- -

プロパティ

- -

このインターフェイスは、その親である {{domxref("EventTarget")}} からもプロパティを継承します。

- -
-
{{domxref("BroadcastChannel.name")}}
-
チャネルの名前である {{domxref("DOMString")}} を返します。
-
-

イベントハンドラ

-
-
{{domxref("BroadcastChannel.onmessage")}}
-
このオブジェクトで {{event("message")}} イベントが発生したときに実行する関数を指定する {{event("Event_handlers", "event handler")}} プロパティ。
-
{{domxref("BroadcastChannel.onmessageerror")}}
-
{{event("Event_handlers", "event handler")}} は、{{domxref("MessageError")}} 型の {{domxref("MessageEvent")}} が発生したとき、つまり逆シリアル化できないメッセージを受け取ったときに呼び出されます。
-
- -

メソッド

- -

このインターフェイスは、その親である {{domxref("EventTarget")}} からもメソッドを継承しています。

- -
-
{{domxref("BroadcastChannel.postMessage()")}}
-
同じチャンネルをリッスンしている各 BroadcastChannel オブジェクトに、任意の種類のオブジェクトのメッセージを送信します。
-
{{domxref("BroadcastChannel.close()")}}
-
チャネルオブジェクトを閉じます。 これは、新しいメッセージを取得しないことを示し、最終的にガベージコレクションされることを許可します。
-
- -

イベント

- -
-
{{domxref("BroadcastChannel.message_event","message")}}
-
メッセージがチャネルに到着したときに発生します。
- {{domxref("BroadcastChannel.onmessage","onmessage")}} プロパティからも利用できます。
-
{{domxref("BroadcastChannel.messageerror_event","messageerror")}}
-
逆シリアル化できないメッセージが到着したときに発生します。
- {{domxref("BroadcastChannel.onmessageerror","onmessageerror")}} プロパティからも利用できます。
-
- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('HTML WHATWG', "comms.html#broadcastchannel", "BroadcastChannel")}}{{Spec2('HTML WHATWG')}}初期定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.BroadcastChannel")}}

- -

関連情報

- - diff --git a/files/ja/web/api/broadcastchannel/index.md b/files/ja/web/api/broadcastchannel/index.md new file mode 100644 index 00000000000000..7585738f3fd673 --- /dev/null +++ b/files/ja/web/api/broadcastchannel/index.md @@ -0,0 +1,70 @@ +--- +title: BroadcastChannel +slug: Web/API/BroadcastChannel +tags: + - API + - Broadcast Channel API + - Experimental + - HTML API + - Interface + - Reference +translation_of: Web/API/BroadcastChannel +--- +{{APIRef("Broadcast Channel API")}} + +**`BroadcastChannel`** インターフェイスは、特定の{{glossary("origin","オリジン")}}の{{glossary("browsing context","閲覧コンテキスト")}}が購読できる名前付きチャネルを表します。 それは、同じオリジンの異なるドキュメント間(異なるウィンドウ、タブ、フレーム、iframe)の通信を可能にします。 メッセージは、チャンネルをリッスンしているすべての `BroadcastChannel` オブジェクトで発生する {{event("message")}} イベントを介して放送されます。 + +{{AvailableInWorkers}} + +## コンストラクタ + +- {{domxref("BroadcastChannel.BroadcastChannel", "BroadcastChannel()")}} + - : 名前付きチャンネルにリンクするオブジェクトを作成します。 + +## プロパティ + +_このインターフェイスは、その親である {{domxref("EventTarget")}} からもプロパティを継承します。_ + +- {{domxref("BroadcastChannel.name")}} + - : チャネルの名前である {{domxref("DOMString")}} を返します。 +- ### イベントハンドラ + + {{domxref("BroadcastChannel.onmessage")}} + + - : このオブジェクトで {{event("message")}} イベントが発生したときに実行する関数を指定する {{event("Event_handlers", "event handler")}} プロパティ。 + +- {{domxref("BroadcastChannel.onmessageerror")}} + - : {{event("Event_handlers", "event handler")}} は、{{domxref("MessageError")}} 型の {{domxref("MessageEvent")}} が発生したとき、つまり逆シリアル化できないメッセージを受け取ったときに呼び出されます。 + +## メソッド + +_このインターフェイスは、その親である {{domxref("EventTarget")}} からもメソッドを継承しています。_ + +- {{domxref("BroadcastChannel.postMessage()")}} + - : 同じチャンネルをリッスンしている各 BroadcastChannel オブジェクトに、任意の種類のオブジェクトのメッセージを送信します。 +- {{domxref("BroadcastChannel.close()")}} + - : チャネルオブジェクトを閉じます。 これは、新しいメッセージを取得しないことを示し、最終的にガベージコレクションされることを許可します。 + +## イベント + +- {{domxref("BroadcastChannel.message_event","message")}} + - : メッセージがチャネルに到着したときに発生します。 + {{domxref("BroadcastChannel.onmessage","onmessage")}} プロパティからも利用できます。 +- {{domxref("BroadcastChannel.messageerror_event","messageerror")}} + - : 逆シリアル化できないメッセージが到着したときに発生します。 + {{domxref("BroadcastChannel.onmessageerror","onmessageerror")}} プロパティからも利用できます。 + +## 仕様 + +| 仕様 | 状態 | コメント | +| -------------------------------------------------------------------------------------------------------- | -------------------------------- | -------- | +| {{SpecName('HTML WHATWG', "comms.html#broadcastchannel", "BroadcastChannel")}} | {{Spec2('HTML WHATWG')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.BroadcastChannel")}} + +## 関連情報 + +- ブラウザコンテキスト間でやり取りするもう 1 つの、よりヘビー級の方法: {{domxref("ServiceWorker")}}. +- [Broadcast Channel API の概要](/ja/docs/Web/API/Broadcast_Channel_API) diff --git a/files/ja/web/api/broadcastchannel/message_event/index.html b/files/ja/web/api/broadcastchannel/message_event/index.html deleted file mode 100644 index 4b473bf70b36cb..00000000000000 --- a/files/ja/web/api/broadcastchannel/message_event/index.html +++ /dev/null @@ -1,171 +0,0 @@ ---- -title: 'BroadcastChannel: message イベント' -slug: Web/API/BroadcastChannel/message_event -tags: - - Communication - - Event - - EventSource - - Reference - - events - - message - - messaging -translation_of: Web/API/BroadcastChannel/message_event ---- -
{{APIRef}}
- -

message イベントは、メッセージがそのチャネルに到着したときに {{domxref('BroadcastChannel')}} オブジェクトに対して発生します。

- - - - - - - - - - - - - - - - - - - - -
バブリングなし
キャンセル不可
インターフェイス{{domxref("MessageEvent")}}
イベントハンドラプロパティ{{domxref("BroadcastChannel.onmessage","onmessage")}}
- -

- -

実例

- -

この例では、ユーザーがボタンをクリックしたときに {{htmlelement("textarea")}} の内容を放送する "Sender" の {{htmlelement("iframe")}} と、放送メッセージを受信し、その結果を {{htmlelement("div")}} 要素に書き込む2つの "Receiver" の <iframe> があります。

- -

Sender

- - - -
const channel = new BroadcastChannel('example-channel');
-const messageControl = document.querySelector('#message');
-const broadcastMessageButton = document.querySelector('#broadcast-message');
-
-broadcastMessageButton.addEventListener('click', () => {
-    channel.postMessage(messageControl.value);
-})
-
- -

Receiver 1

- - - -
const channel = new BroadcastChannel('example-channel');
-channel.addEventListener('message', (event) => {
-  received.textContent = event.data;
-});
- -

Receiver 2

- - - -
const channel = new BroadcastChannel('example-channel');
-channel.addEventListener('message', (event) => {
-  received.textContent = event.data;
-});
- -

結果

- -

{{ EmbedLiveSample('Sender', '100%', '170px','' ,'' , 'dummy') }}

- -

{{ EmbedLiveSample('Receiver_1', '100%', '150px','' ,'' , 'dummy') }}

- -

{{ EmbedLiveSample('Receiver_2', '100%', '150px','' ,'' , 'dummy') }}

- -

仕様

- - - - - - - - - - - - -
仕様状態
{{SpecName('HTML WHATWG', 'indices.html#event-message')}}{{Spec2('HTML WHATWG')}}
- -

ブラウザーの互換性

- - - -

{{Compat("api.BroadcastChannel.message_event")}}

- -

関連情報

- - diff --git a/files/ja/web/api/broadcastchannel/message_event/index.md b/files/ja/web/api/broadcastchannel/message_event/index.md new file mode 100644 index 00000000000000..be418881dd0004 --- /dev/null +++ b/files/ja/web/api/broadcastchannel/message_event/index.md @@ -0,0 +1,152 @@ +--- +title: 'BroadcastChannel: message イベント' +slug: Web/API/BroadcastChannel/message_event +tags: + - Communication + - Event + - EventSource + - Reference + - events + - message + - messaging +translation_of: Web/API/BroadcastChannel/message_event +--- +{{APIRef}} + +`message` イベントは、メッセージがそのチャネルに到着したときに {{domxref('BroadcastChannel')}} オブジェクトに対して発生します。 + +| バブリング | なし | +| -------------------------- | ------------------------------------------------------------------------ | +| キャンセル | 不可 | +| インターフェイス | {{domxref("MessageEvent")}} | +| イベントハンドラプロパティ | {{domxref("BroadcastChannel.onmessage","onmessage")}} | + +## 例 + +### 実例 + +この例では、ユーザーがボタンをクリックしたときに {{htmlelement("textarea")}} の内容を放送する "Sender" の {{htmlelement("iframe")}} と、放送メッセージを受信し、その結果を {{htmlelement("div")}} 要素に書き込む 2 つの "Receiver" の ` +``` + +API は、潜在的なストレージの例外を、ユーザーがやり取りする意図を示したオリジンに制限するように設計されています。 これは、次の制約によって実施されます。 + +- 埋め込まれたコンテンツがタップやクリックなどのユーザージェスチャーを現在処理していない限り、アクセス要求は自動的に拒否されます。 これにより、ページに埋め込まれたコンテンツが過剰なアクセス要求でブラウザーまたはユーザーにスパムすることも防止されます。 +- ファーストパーティとしてやり取りしたことがないオリジンには、ファーストパーティストレージの概念がありません。 ユーザーの観点から見ると、そのオリジンとサードパーティの関係性しかありません。 ブラウザーが、ユーザーがファーストパーティのコンテキストで埋め込まれたコンテンツと最近やり取りしていないことをブラウザーが検出した場合、アクセス要求は自動的に拒否されます(Firefox では、「最近」は「30 日以内」です)。 + +ブラウザーは、到来するストレージアクセス要求を許可するかどうかの決定にユーザーを関与させることを決定する場合があります。 ストレージ許可の存続期間とブラウザーがユーザーに通知することを決定する状況に関する詳細は現在作業中であり、準備ができ次第発表されます。 + +## ユーザープロンプト + +埋め込まれたクロスオリジンの文書によって `requestStorageAccess()` が呼び出されると、ユーザーエージェントは、要求オリジンにストレージアクセスを許可するかどうかの決定にユーザーを関与させることを選択できます。 現在、プロンプトヒューリスティック(Prompting heuristics、プロンプトするべきかを決める発見的方法)は Storage Access API の 2 つの実装者によって異なります。 Safari は、以前にストレージアクセスを受け取っていないすべての埋め込まれた追跡コンテンツにプロンプトを表示します。 Firefox は、追跡オリジンがサイトのしきい値数を超えてストレージアクセスを要求した後にのみユーザーにプロンプトします。 詳細については、{{domxref("Document.requestStorageAccess()")}} を参照してください。 + +## Safari の実装との違い + +API の表面は同じですが、Storage Access API を使用するウェブサイトは、Firefox と Safari の間で受け取るストレージアクセスのレベルと範囲に違いがあることを予期する必要があります。 これは、2 つのブラウザーに実装されているストレージアクセスポリシーの違いが原因です。 Firefox に固有の設計プロパティを以下に要約します。 + +- 埋め込まれたオリジン `tracker.example` が最上位オリジン `foo.example` でファーストパーティストレージへのアクセスを既に取得しており、ユーザーが `foo.example` からのページに埋め込まれた `tracker.example` からのページに、30 日以内に再度訪問した場合、埋め込まれたオリジンは、読み込まれるとすぐにストレージにアクセスできます。 +- 最上位オリジン `foo.example` のページに `tracker.example` の複数の {{htmlelement("iframe")}} が埋め込まれ、それらの ` +``` + +次に、埋め込まれた文書内で実行されるコードに進みます。 現在ストレージにアクセスできるかどうかはわからないため、最初に {{domxref("Document.hasStorageAccess()")}} を呼び出す必要があります。 その呼び出しが `false` を返す場合、{{domxref("Document.requestStorageAccess()")}} を呼び出すことができます。 それが返した結果は、前の Promise 呼び出しにチェーンできます。 最後の `then` では、ファーストパーティストレージへのアクセスが可能になります。 + +```js +document.hasStorageAccess().then(hasAccess => { + if (!hasAccess) { + return document.requestStorageAccess(); + } +}).then(_ => { + // これで、ファーストパーティストレージにアクセスできます! + + // ファーストパーティのクッキージャーからいくつかのアイテムにアクセスしましょう + document.cookie = "foo=bar"; // クッキーを設定 + localStorage.setItem("username", "John"); // localStorage エントリにアクセス +}).catch(_ => { + // ストレージアクセスの取得エラー。 +}); +``` + +埋め込まれたコンテンツがタップやクリックなどのユーザージェスチャーを現在処理していない限り、アクセス要求は自動的に拒否されることに注意してください。 このコードは、例えば、次のようなユーザージェスチャーベースのイベントハンドラー内で実行する必要があります。 + +```js +btn.addEventListener('click', () => { + // ここでコードを実行します +}); +``` diff --git a/files/ja/web/api/storage_api/index.html b/files/ja/web/api/storage_api/index.html deleted file mode 100644 index 2a15ba73fe8220..00000000000000 --- a/files/ja/web/api/storage_api/index.html +++ /dev/null @@ -1,127 +0,0 @@ ---- -title: Storage API -slug: Web/API/Storage_API -tags: - - API - - Overview - - Quotas - - Reference - - Secure context - - Storage - - Storage API - - Usage -translation_of: Web/API/Storage_API ---- -

{{securecontext_header}}{{DefaultAPISidebar("Storage")}}

- -

ストレージ標準(Storage Standard)は、個々のウェブサイトのコンテンツがアクセス可能なデータを格納するすべての API およびテクノロジーで使用する、共通の共有ストレージシステムを定義しています。Storage API は、どのくらいのスペースを使用できるかや、すでにどのくらいのスペースを使用しているかを調べたり、{{Glossary("user agent","ユーザーエージェント")}}が他のもののための場所を空けるためにサイトデータを処分する前に、警告する必要があるかどうかを制御したりといった機能を、サイトのコードに提供します。

- -

{{AvailableInWorkers}}

- -

サイトストレージ — ストレージ標準によって管理しているウェブサイト用に格納されたデータ — には、次のものが含まれます。

- - - -

サイトストレージユニット

- -

ストレージ標準によって記述され、Storage API を使用して相互作用するサイトストレージシステムは、各オリジン({{Glossary("origin")}})に対して 1 つのサイトストレージユニット(site storage unit、サイトの保管単位)で構成されています。基本的に、すべてのウェブサイトまたはウェブアプリには、データを格納するための独自のストレージユニットがあります。以下の図は、内部に 3 つのストレージユニットを持つサイトストレージプールを示しています。これはストレージユニットがどのように異なるデータタイプを格納でき、異なるクォータ(最大ストレージ制限)を持つことができるかを示しています。

- -

サイトストレージプールが、さまざまな API からのデータとクォータに達する前に残っている可能性のある未使用スペースを含む複数のストレージユニットで構成されている様子を示す図。

- - - -

{{Glossary("User agent","ユーザーエージェント")}}は様々なオリジンのクォータを決定するために様々なテクニックを使う可能性があります。最も可能性の高い方法の 1 つ — 実際に仕様が具体的に推奨するもの — は、個々のサイトの人気や使用レベルを考慮して、それらのクォータがどうあるべきかを判断することです。ブラウザーがこれらのクォータをカスタマイズするためのユーザーインターフェイスを提供することも考えられます。

- -

ボックスモード

- -

各サイトストレージユニット内の実際のデータストレージは、そのボックスと呼ばれます。各サイトストレージユニットには、そのすべてのデータを配置するボックスが 1 つだけあり、そのボックスのデータ保持ポリシーを説明するボックスモードがあります。次の 2 つのモードがあります。

- -
-
"best-effort"(最大限の努力)
-
ユーザーエージェントは可能な限りボックスに含まれているデータを保持しようと試みますが、ストレージスペースが少なくなり、ストレージの圧力を軽減するためにボックスを消去する必要がある場合はユーザーに警告しません
-
"persistent"(永続的)
-
ユーザーエージェントはデータを可能な限り長く保持し、"persistent" とマークされたボックスの消去を検討する前にすべての "best-effort" ボックスを消去します。persistent ボックスの消去を検討する必要がある場合、ユーザーエージェントはユーザーに通知し、必要に応じて 1 つ以上の persistent ボックスを消去する方法を提供します。
-
- -

オリジンのボックスモードを変更するには、"persistent-storage"(永続的ストレージ)機能を使うパーミッションが必要です。

- -

データの永続化と消去

- -

サイトやアプリに "persistent-storage" 機能のパーミッションがある場合は、{{domxref("StorageManager.persist()")}} メソッドを使用して、そのボックスを永続的にすることを要求できます。また利用特性や他の測定基準により、ユーザーエージェントがサイトのストレージユニットを永続的にすることを決定することも可能です。"persistent-storage" 機能のパーミッション関連のフラグ、アルゴリズム、およびタイプはすべてパーミッションの標準デフォルトに設定されています。ただし、パーミッションの状態(permission state)はオリジン全体で同じでなければならず、パーミッションの状態が "granted" (付与)されていない場合(何らかの理由で永続的ストレージ機能へのアクセスが拒否された場合)、そのオリジンのサイトストレージユニットのボックスモードは常に "best-effort" になります。

- -
-

: パーミッションの取得と管理の詳細については、Permissions API の使用を参照してください。

-
- -

サイトストレージユニットを消去するとき、オリジンのボックスは単一の実体として扱われます。ユーザーエージェントがそれを消去する必要があり、ユーザーが承認した場合、個々の API からデータのみを消去する手段を提供するのではなく、データストア全体を消去します。

- -

ボックスが "persistent" とマークされている場合、その内容は、データのオリジン自身やユーザーが特別に消すことなしには、ユーザーエージェントによって消去されません。これには、ユーザーが「キャッシュを消去」や「最近の履歴を消去」のオプションを選択した場合などのシナリオが含まれます。ユーザーは、persistent サイトストレージユニットを削除するための許可を特に求められます。

- -

クォータと使用量の推定

- -

ユーザーエージェントは、選択した任意のメカニズムを使用して、特定のサイトが使用できるストレージの最大量を決定します。この最大値がオリジンのクォータ(quota)です。サイトが使用しているスペースの量は、その使用量(usage)と呼ばれます。これらの値は両方とも推定値です。正確でない理由は次のようにいくつかあります。

- - - -

ユーザーエージェントは、オリジンのクォータのサイズを決定するために選択した任意の方法を使用することができ、そして仕様では人気があるか頻繁に使用されるサイトに追加スペースを提供することを奨励しています。

- -

特定のオリジンのクォータと使用量の推定値を決定するには、{{domxref("StorageManager.estimate", "navigator.storage.estimate()")}} メソッドを使用します。このメソッドは、解決すると、これらの数値を含む {{domxref("StorageEstimate")}} を受け取るという Promise を返します。例えば次のようにです。

- -
navigator.storage.estimate().then(estimate => {
-  // estimate.quota は見積もりクォータです
-  // estimate.usage は見積もり使用バイト数です
-});
- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('Storage')}}{{Spec2('Storage')}}初期定義
- -

ブラウザーの互換性

- -
-

StorageManager

- -
- - -

{{Compat("api.StorageManager")}}

-
-
- -

関連情報

- - diff --git a/files/ja/web/api/storage_api/index.md b/files/ja/web/api/storage_api/index.md new file mode 100644 index 00000000000000..b859dff257c946 --- /dev/null +++ b/files/ja/web/api/storage_api/index.md @@ -0,0 +1,100 @@ +--- +title: Storage API +slug: Web/API/Storage_API +tags: + - API + - Overview + - Quotas + - Reference + - Secure context + - Storage + - Storage API + - Usage +translation_of: Web/API/Storage_API +--- +{{securecontext_header}}{{DefaultAPISidebar("Storage")}} + +ストレージ標準(Storage Standard)は、個々のウェブサイトのコンテンツがアクセス可能なデータを格納するすべての API およびテクノロジーで使用する、共通の共有ストレージシステムを定義しています。Storage API は、どのくらいのスペースを使用できるかや、すでにどのくらいのスペースを使用しているかを調べたり、{{Glossary("user agent","ユーザーエージェント")}}が他のもののための場所を空けるためにサイトデータを処分する前に、警告する必要があるかどうかを制御したりといった機能を、サイトのコードに提供します。 + +{{AvailableInWorkers}} + +サイトストレージ — ストレージ標準によって管理しているウェブサイト用に格納されたデータ — には、次のものが含まれます。 + +- [IndexedDB データベース](/ja/docs/Web/API/IndexedDB_API) +- [Cache API のデータ](/ja/docs/Web/API/Cache) +- [サービスワーカーの登録](/ja/docs/Web/API/Service_Worker_API) +- {{domxref("window.localStorage")}} を使用して管理している [Web Storage API のデータ](/ja/docs/Web/API/Web_Storage_API) +- {{domxref("History.pushState()")}} を使用して保存した履歴状態情報 +- [アプリケーションキャッシュ](/ja/docs/Web/HTML/Using_the_application_cache) +- [通知データ](/ja/docs/Web/API/Notifications_API) +- 維持される可能性があるその他の種類のサイトでアクセス可能なサイト固有のデータ + +## サイトストレージユニット + +ストレージ標準によって記述され、Storage API を使用して相互作用するサイトストレージシステムは、各オリジン({{Glossary("origin")}})に対して 1 つの**サイトストレージユニット**(site storage unit、サイトの保管単位)で構成されています。基本的に、すべてのウェブサイトまたはウェブアプリには、データを格納するための独自のストレージユニットがあります。以下の図は、内部に 3 つのストレージユニットを持つサイトストレージプールを示しています。これはストレージユニットがどのように異なるデータタイプを格納でき、異なるクォータ(最大ストレージ制限)を持つことができるかを示しています。 + +![サイトストレージプールが、さまざまな API からのデータとクォータに達する前に残っている可能性のある未使用スペースを含む複数のストレージユニットで構成されている様子を示す図。](https://mdn.mozillademos.org/files/14379/StorageUnits.png) + +- Origin 1 には、Web Storage のデータと IndexedDB のデータがありますが、空き容量もあります。現在の使用量はまだクォータに達していません。 +- Origin 2 にはまだデータが格納されていません。内容を待っているだけの空の箱です。ただし、このオリジンは他の 2 つよりもクォータが少なくなります。アクセス頻度の低いサイト、またはデータストレージ要件が低いことが知られているサイトである可能性があります。 +- Origin 3 のストレージユニットは完全にいっぱいです。クォータに達し、既存のデータを削除しない限り、これ以上データを格納できません。 + +{{Glossary("User agent","ユーザーエージェント")}}は様々なオリジンのクォータを決定するために様々なテクニックを使う可能性があります。最も可能性の高い方法の 1 つ — 実際に仕様が具体的に推奨するもの — は、個々のサイトの人気や使用レベルを考慮して、それらのクォータがどうあるべきかを判断することです。ブラウザーがこれらのクォータをカスタマイズするためのユーザーインターフェイスを提供することも考えられます。 + +## ボックスモード + +各サイトストレージユニット内の実際のデータストレージは、その**ボックス**と呼ばれます。各サイトストレージユニットには、そのすべてのデータを配置するボックスが 1 つだけあり、そのボックスのデータ保持ポリシーを説明する**ボックスモード**があります。次の 2 つのモードがあります。 + +- `"best-effort"`(最大限の努力) + - : ユーザーエージェントは可能な限りボックスに含まれているデータを保持しようと試みますが、ストレージスペースが少なくなり、ストレージの圧力を軽減するためにボックスを消去する必要がある場合は*ユーザーに警告しません*。 +- `"persistent"`(永続的) + - : ユーザーエージェントはデータを可能な限り長く保持し、`"persistent"` とマークされたボックスの消去を検討する前にすべての `"best-effort"` ボックスを消去します。persistent ボックスの消去を検討する必要がある場合、ユーザーエージェントはユーザーに通知し、必要に応じて 1 つ以上の persistent ボックスを消去する方法を提供します。 + +オリジンのボックスモードを変更するには、`"persistent-storage"`(永続的ストレージ)機能を使うパーミッションが必要です。 + +## データの永続化と消去 + +サイトやアプリに **`"persistent-storage"`** 機能のパーミッションがある場合は、{{domxref("StorageManager.persist()")}} メソッドを使用して、そのボックスを永続的にすることを要求できます。また利用特性や他の測定基準により、ユーザーエージェントがサイトのストレージユニットを永続的にすることを決定することも可能です。`"persistent-storage"` 機能のパーミッション関連のフラグ、アルゴリズム、およびタイプはすべてパーミッションの標準デフォルトに設定されています。ただし、**パーミッションの状態**(permission state)はオリジン全体で同じでなければならず、パーミッションの状態が `"granted"` (付与)されていない場合(何らかの理由で永続的ストレージ機能へのアクセスが拒否された場合)、そのオリジンのサイトストレージユニットのボックスモードは常に `"best-effort"` になります。 + +> **Note:** **注**: パーミッションの取得と管理の詳細については、[Permissions API の使用](/ja/docs/Web/API/Permissions_API/Using_the_Permissions_API)を参照してください。 + +サイトストレージユニットを消去するとき、オリジンのボックスは単一の実体として扱われます。ユーザーエージェントがそれを消去する必要があり、ユーザーが承認した場合、個々の API からデータのみを消去する手段を提供するのではなく、データストア全体を消去します。 + +ボックスが `"persistent"` とマークされている場合、その内容は、データのオリジン自身やユーザーが特別に消すことなしには、ユーザーエージェントによって消去されません。これには、ユーザーが「キャッシュを消去」や「最近の履歴を消去」のオプションを選択した場合などのシナリオが含まれます。ユーザーは、persistent サイトストレージユニットを削除するための許可を特に求められます。 + +## クォータと使用量の推定 + +ユーザーエージェントは、選択した任意のメカニズムを使用して、特定のサイトが使用できるストレージの最大量を決定します。この最大値がオリジンの**クォータ**(quota)です。サイトが使用しているスペースの量は、その**使用量**(usage)と呼ばれます。これらの値は両方とも推定値です。正確でない理由は次のようにいくつかあります。 + +- ユーザーエージェントは、これらの値がフィンガープリント(個人の推定)の目的で使用されるのを防ぐために、特定のオリジンが使用するデータの正確なサイズを不明瞭にしておくことが奨励されています。 +- 格納されたデータの物理的サイズを縮小するために重複排除、圧縮、およびその他の方法が使用されることがあります。 +- クォータは、オリジンが使えるスペースの控えめな概算値であり、オーバーランを防ぐためにデバイスで利用可能なスペースより小さくなければなりません。 + +ユーザーエージェントは、オリジンのクォータのサイズを決定するために選択した任意の方法を使用することができ、そして仕様では人気があるか頻繁に使用されるサイトに追加スペースを提供することを奨励しています。 + +特定のオリジンのクォータと使用量の推定値を決定するには、{{domxref("StorageManager.estimate", "navigator.storage.estimate()")}} メソッドを使用します。このメソッドは、解決すると、これらの数値を含む {{domxref("StorageEstimate")}} を受け取るという Promise を返します。例えば次のようにです。 + +```js +navigator.storage.estimate().then(estimate => { + // estimate.quota は見積もりクォータです + // estimate.usage は見積もり使用バイト数です +}); +``` + +## 仕様 + +| 仕様 | 状態 | コメント | +| -------------------------------- | ---------------------------- | -------- | +| {{SpecName('Storage')}} | {{Spec2('Storage')}} | 初期定義 | + +## ブラウザーの互換性 + +### `StorageManager` + +{{Compat("api.StorageManager")}} + +## 関連情報 + +- {{domxref("NavigatorStorage.storage", "navigator.storage")}} +- {{domxref("StorageManager")}}(`navigator.storage` から返されたオブジェクト) +- [Permissions API の使用](/ja/docs/Web/API/Permissions_API/Using_the_Permissions_API) diff --git a/files/ja/web/api/storageevent/index.html b/files/ja/web/api/storageevent/index.html deleted file mode 100644 index e7cb79a414708c..00000000000000 --- a/files/ja/web/api/storageevent/index.html +++ /dev/null @@ -1,108 +0,0 @@ ---- -title: StorageEvent -slug: Web/API/StorageEvent -tags: - - API - - Reference - - Web Storage API -translation_of: Web/API/StorageEvent ---- -

{{APIRef("Web Storage API")}}

- -

StorageEvent は、ストレージエリアが変化したときに window へ送信されます。

- -
-

注記: {{Gecko("2.0")}} より前にもこのイベントは存在していましたが、仕様書に合致していませんでした。古いイベント形式は nsIDOMStorageEventObsolete インターフェイスで表します。

-
- -

メソッドの概要

- - - - - - - -
void initStorageEvent(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMString keyArg, in DOMString oldValueArg, in DOMString newValueArg, in DOMString urlArg, in nsIDOMStorage storageAreaArg);
- -

属性

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
属性説明
key{{domxref("DOMString")}}変更されたキーを表します。storage の clear() メソッドで変更された場合は、key 属性が null になります。読み取り専用です。
newValue{{domxref("DOMString")}}key の新しい値です。storage の clear() メソッドで変更された場合や key がストレージから削除された場合は、newValuenull になります。読み取り専用です。
oldValue{{domxref("DOMString")}}key の元の値です。storage の clear() メソッドで変更された場合や key が新たに追加されたため以前の値がない場合は、oldValuenull になります。読み取り専用です。
storageAreansIDOMStorage影響を受けた Storage オブジェクトを表します。読み取り専用です。
url{{domxref("DOMString")}}key が変更されたドキュメントの URL です。読み取り専用です。
- -

メソッド

- -

initStorageEvent()

- -

DOM イベントインターフェイス内の同様の名前のメソッドに似た方法で、イベントを初期化します。

- -
void initStorageEvent(
-  in DOMString typeArg,
-  in boolean canBubbleArg,
-  in boolean cancelableArg,
-  in DOMString keyArg,
-  in DOMString oldValueArg,
-  in DOMString newValueArg,
-  in DOMString urlArg,
-  in nsIDOMStorage storageAreaArg
-);
-
- -
引数
- -
-
typeArg
-
イベントの名称。
-
canBubbleArg
-
イベントが DOM 内でバブリングするか否かを示す論理値。
-
cancelableArg
-
イベントがキャンセル可能であるかを示す論理値。
-
keyArg
-
イベントの結果として、値が変化したキー。
-
oldValueArg
-
キーに対する以前の値。
-
newValueArg
-
キーに対する新しい値。
-
urlArg
-
説明なし。
-
storageAreaArg
-
イベントが発生したストレージエリアを表す DOM {{domxref("Storage")}} オブジェクト。
-
- -

関連情報

- - diff --git a/files/ja/web/api/storageevent/index.md b/files/ja/web/api/storageevent/index.md new file mode 100644 index 00000000000000..d8ffc532a32fdf --- /dev/null +++ b/files/ja/web/api/storageevent/index.md @@ -0,0 +1,69 @@ +--- +title: StorageEvent +slug: Web/API/StorageEvent +tags: + - API + - Reference + - Web Storage API +translation_of: Web/API/StorageEvent +--- +{{APIRef("Web Storage API")}} + +`StorageEvent` は、ストレージエリアが変化したときに window へ送信されます。 + +> **Note:** **注記:** {{Gecko("2.0")}} より前にもこのイベントは存在していましたが、仕様書に合致していませんでした。古いイベント形式は `nsIDOMStorageEventObsolete` インターフェイスで表します。 + +## メソッドの概要 + +| `void initStorageEvent(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMString keyArg, in DOMString oldValueArg, in DOMString newValueArg, in DOMString urlArg, in nsIDOMStorage storageAreaArg);` | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + +## 属性 + +| 属性 | 型 | 説明 | +| ------------- | -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `key` | {{domxref("DOMString")}} | 変更されたキーを表します。storage の `clear()` メソッドで変更された場合は、`key` 属性が `null` になります。**読み取り専用です。** | +| `newValue` | {{domxref("DOMString")}} | `key` の新しい値です。storage の `clear()` メソッドで変更された場合や `key` がストレージから削除された場合は、`newValue` が `null` になります。**読み取り専用です。** | +| `oldValue` | {{domxref("DOMString")}} | `key` の元の値です。storage の `clear()` メソッドで変更された場合や `key` が新たに追加されたため以前の値がない場合は、`oldValue` が `null` になります。**読み取り専用です。** | +| `storageArea` | `nsIDOMStorage` | 影響を受けた Storage オブジェクトを表します。**読み取り専用です。** | +| `url` | {{domxref("DOMString")}} | `key` が変更されたドキュメントの URL です。**読み取り専用です。** | + +## メソッド + +### initStorageEvent() + +DOM イベントインターフェイス内の同様の名前のメソッドに似た方法で、イベントを初期化します。 + + void initStorageEvent( + in DOMString typeArg, + in boolean canBubbleArg, + in boolean cancelableArg, + in DOMString keyArg, + in DOMString oldValueArg, + in DOMString newValueArg, + in DOMString urlArg, + in nsIDOMStorage storageAreaArg + ); + +###### 引数 + +- `typeArg` + - : イベントの名称。 +- `canBubbleArg` + - : イベントが DOM 内でバブリングするか否かを示す論理値。 +- `cancelableArg` + - : イベントがキャンセル可能であるかを示す論理値。 +- `keyArg` + - : イベントの結果として、値が変化したキー。 +- `oldValueArg` + - : キーに対する以前の値。 +- `newValueArg` + - : キーに対する新しい値。 +- `urlArg` + - : 説明なし。 +- `storageAreaArg` + - : イベントが発生したストレージエリアを表す DOM {{domxref("Storage")}} オブジェクト。 + +## 関連情報 + +- [仕様書](http://dev.w3.org/html5/webstorage/#the-storage-event) diff --git a/files/ja/web/api/storagemanager/estimate/index.html b/files/ja/web/api/storagemanager/estimate/index.html deleted file mode 100644 index e2387ef21ab651..00000000000000 --- a/files/ja/web/api/storagemanager/estimate/index.html +++ /dev/null @@ -1,102 +0,0 @@ ---- -title: StorageManager.estimate() -slug: Web/API/StorageManager/estimate -tags: - - API - - Method - - Quota - - Reference - - Secure context - - Storage - - Storage API - - StorageManager - - Usage - - estimate - - メソッド -translation_of: Web/API/StorageManager/estimate ---- -

{{securecontext_header}}{{APIRef("Storage")}}

- -

estimate() は {{domxref("StorageManager")}} インターフェイスのメソッドで、ストレージマネージャーに、現在のオリジンが使用しているストレージの大きさ (usage) と、利用可能な空間の量 (quota) を要求します。

- -

このメソッドは非同期的に動作するので、情報が利用可能になると解決する {{jsxref("Promise")}} を返します。プロミスの成功ハンドラーは、使用量とクォータのデータを含む {{domxref("StorageEstimate")}} を入力として受け取ります。

- -

構文

- -
const estimatePromise = StorageManager.estimate();
- -

引数

- -

なし。

- -

返値

- -

{{jsxref('Promise')}} で、これは {{domxref('StorageEstimate')}} 辞書に準拠したオブジェクトに解決します。この辞書には、このオリジンで利用可能なおよその大きさが {{domxref("StorageEstimate.quota")}} に、現在使用されているおよその量が {{domxref("StorageEstimate.usage")}} に入ります。

- -
-

これらは正確な数値ではありません。圧縮、重複排除セキュリティ上の理由による難読化などが行われるため、正確な値にはなりません。

-
- -

quota はオリジンごとに異なることに気づくかもしれません。この違いは次のような要因に基づきます。

- - - -

- -

この例では、使用量の概算値を取得し、現在使用しているストレージ容量のパーセント値をユーザーに提示します。

- -

HTML の内容

- -
<label>
-  現在、使用可能なストレージの約 <output id="percent">
-  </output>% を使用しています。
-</label>
-
- -

JavaScript の内容

- -
navigator.storage.estimate().then(function(estimate) {
-  document.getElementById("percent").value =
-      (estimate.usage / estimate.quota * 100).toFixed(2);
-});
-
- -

結果

- -

{{ EmbedLiveSample('Example', 600, 40) }}

- -

仕様書

- - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName('Storage','#dom-storagemanager-estimate','estimate()')}}{{Spec2('Storage')}}初回定義
- -

ブラウザーの互換性

- -

{{Compat("api.StorageManager.estimate")}}

- -

関連情報

- - diff --git a/files/ja/web/api/storagemanager/estimate/index.md b/files/ja/web/api/storagemanager/estimate/index.md new file mode 100644 index 00000000000000..b06a1192a8ded9 --- /dev/null +++ b/files/ja/web/api/storagemanager/estimate/index.md @@ -0,0 +1,87 @@ +--- +title: StorageManager.estimate() +slug: Web/API/StorageManager/estimate +tags: + - API + - Method + - Quota + - Reference + - Secure context + - Storage + - Storage API + - StorageManager + - Usage + - estimate + - メソッド +translation_of: Web/API/StorageManager/estimate +--- +{{securecontext_header}}{{APIRef("Storage")}} + +**`estimate()`** は {{domxref("StorageManager")}} インターフェイスのメソッドで、ストレージマネージャーに、現在の[オリジン](/ja/docs/Glossary/Same-origin_policy)が使用しているストレージの大きさ (`usage`) と、利用可能な空間の量 (`quota`) を要求します。 + +このメソッドは非同期的に動作するので、情報が利用可能になると解決する {{jsxref("Promise")}} を返します。プロミスの成功ハンドラーは、使用量とクォータのデータを含む {{domxref("StorageEstimate")}} を入力として受け取ります。 + +## 構文 + +```js +const estimatePromise = StorageManager.estimate(); +``` + +### 引数 + +なし。 + +### 返値 + +{{jsxref('Promise')}} で、これは {{domxref('StorageEstimate')}} 辞書に準拠したオブジェクトに解決します。この辞書には、このオリジンで利用可能なおよその大きさが {{domxref("StorageEstimate.quota")}} に、現在使用されているおよその量が {{domxref("StorageEstimate.usage")}} に入ります。 + +> **Note:** **これらは正確な数値ではありません。**圧縮、重複排除セキュリティ上の理由による難読化などが行われるため、正確な値にはなりません。 + +`quota` はオリジンごとに異なることに気づくかもしれません。この違いは次のような要因に基づきます。 + +- ユーザーが訪れる頻度 +- 公開されたサイトの有名度データ +- ブックマーク、ホーム画面へ追加、プッシュ通知の受付などのユーザーのエンゲージメントの印 + +## 例 + +この例では、使用量の概算値を取得し、現在使用しているストレージ容量のパーセント値をユーザーに提示します。 + +### HTML の内容 + +```html + +``` + +### JavaScript の内容 + +```js +navigator.storage.estimate().then(function(estimate) { + document.getElementById("percent").value = + (estimate.usage / estimate.quota * 100).toFixed(2); +}); +``` + +### 結果 + +{{ EmbedLiveSample('Example', 600, 40) }} + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| ---------------------------------------------------------------------------------------- | ---------------------------- | -------- | +| {{SpecName('Storage','#dom-storagemanager-estimate','estimate()')}} | {{Spec2('Storage')}} | 初回定義 | + +## ブラウザーの互換性 + +{{Compat("api.StorageManager.estimate")}} + +## 関連情報 + +- Storage API +- {{domxref("Storage")}}: {{domxref("Window.localStorage")}} から返されるオブジェクト +- {{domxref("StorageManager")}} +- {{domxref("navigator.storage")}} diff --git a/files/ja/web/api/storagemanager/index.html b/files/ja/web/api/storagemanager/index.html deleted file mode 100644 index 21c5ebcaee9d05..00000000000000 --- a/files/ja/web/api/storagemanager/index.html +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: StorageManager -slug: Web/API/StorageManager -tags: - - API - - Interface - - Persistence - - Quotas - - Reference - - Secure context - - Storage - - Storage API - - StorageManager - - Usage -translation_of: Web/API/StorageManager ---- -

{{securecontext_header}}{{SeeCompatTable}}{{APIRef("Storage")}}

- -

Storage APIStorageManager インターフェイスは、永続性のパーミッションの管理と、利用可能なストレージの見積もりのインターフェイスを提供します。{{domxref("navigator.storage")}} か {{domxref("WorkerNavigator.storage")}} のいずれかを使用して、このインターフェイスへの参照を取得できます。

- -

メソッド

- -
-
{{domxref("StorageManager.estimate()")}} {{securecontext_inline}}
-
オリジンの使用量とクォータを含む {{domxref("StorageEstimate")}} オブジェクトを返します。
-
{{domxref("StorageManager.persist()")}} {{securecontext_inline}}
-
ユーザーエージェントがサイトのストレージを永続化できる場合に true に解決される {{jsxref('Promise')}} を返します。
-
{{domxref("StorageManager.persisted()")}} {{securecontext_inline}}
-
サイトのストレージに永続性がすでに付与されている場合に true に解決される {{jsxref('Promise')}} を返します。
-
- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('Storage','#storagemanager','StorageManger')}}{{Spec2('Storage')}}初期定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.StorageManager")}}

diff --git a/files/ja/web/api/storagemanager/index.md b/files/ja/web/api/storagemanager/index.md new file mode 100644 index 00000000000000..e8d20b66f583cd --- /dev/null +++ b/files/ja/web/api/storagemanager/index.md @@ -0,0 +1,38 @@ +--- +title: StorageManager +slug: Web/API/StorageManager +tags: + - API + - Interface + - Persistence + - Quotas + - Reference + - Secure context + - Storage + - Storage API + - StorageManager + - Usage +translation_of: Web/API/StorageManager +--- +{{securecontext_header}}{{SeeCompatTable}}{{APIRef("Storage")}} + +[Storage API](/ja/docs/Web/API/Storage_API) の **`StorageManager`** インターフェイスは、永続性のパーミッションの管理と、利用可能なストレージの見積もりのインターフェイスを提供します。{{domxref("navigator.storage")}} か {{domxref("WorkerNavigator.storage")}} のいずれかを使用して、このインターフェイスへの参照を取得できます。 + +## メソッド + +- {{domxref("StorageManager.estimate()")}} {{securecontext_inline}} + - : オリジンの使用量とクォータを含む {{domxref("StorageEstimate")}} オブジェクトを返します。 +- {{domxref("StorageManager.persist()")}} {{securecontext_inline}} + - : ユーザーエージェントがサイトのストレージを永続化できる場合に `true` に解決される {{jsxref('Promise')}} を返します。 +- {{domxref("StorageManager.persisted()")}} {{securecontext_inline}} + - : サイトのストレージに永続性がすでに付与されている場合に `true` に解決される {{jsxref('Promise')}} を返します。 + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------------------- | ---------------------------- | -------- | +| {{SpecName('Storage','#storagemanager','StorageManger')}} | {{Spec2('Storage')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.StorageManager")}} diff --git a/files/ja/web/api/storagemanager/persist/index.html b/files/ja/web/api/storagemanager/persist/index.html deleted file mode 100644 index a247573f11c259..00000000000000 --- a/files/ja/web/api/storagemanager/persist/index.html +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: StorageManager.persist() -slug: Web/API/StorageManager/persist -tags: - - Method - - Reference - - Secure context - - Storage API - - persist() -translation_of: Web/API/StorageManager/persist ---- -

{{securecontext_header}}{{APIRef("Storage")}}{{SeeCompatTable}}

- -

{{domxref("StorageManager")}} インターフェイスの persist() メソッドは、永続的ストレージ(persistent storage)を使用するパーミッションを要求します。 そして、パーミッションが付与されてボックスモードが永続的な場合は true に、そうでない場合は false に解決される {{jsxref("Promise")}} を返します。

- -

構文

- -
navigator.storage.persist().then(function(persistent) { ... })
- -

パラメーター

- -

なし。

- -

戻り値

- -

{{jsxref('Boolean')}} に解決される {{jsxref("Promise")}}。

- -

- -
if (navigator.storage && navigator.storage.persist)
-  navigator.storage.persist().then(function(persistent) {
-    if (persistent)
-      console.log("明示的なユーザー操作以外では、ストレージは消去されません。");
-    else
-      console.log("ストレージは UA によってストレージの圧力により消去されるかもしれません。");
-  });
- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('Storage','#dom-storagemanager-persist','persist')}}{{Spec2('Storage')}}初期定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.StorageManager.persist")}}

diff --git a/files/ja/web/api/storagemanager/persist/index.md b/files/ja/web/api/storagemanager/persist/index.md new file mode 100644 index 00000000000000..0c0290cc86bf53 --- /dev/null +++ b/files/ja/web/api/storagemanager/persist/index.md @@ -0,0 +1,48 @@ +--- +title: StorageManager.persist() +slug: Web/API/StorageManager/persist +tags: + - Method + - Reference + - Secure context + - Storage API + - persist() +translation_of: Web/API/StorageManager/persist +--- +{{securecontext_header}}{{APIRef("Storage")}}{{SeeCompatTable}} + +{{domxref("StorageManager")}} インターフェイスの **`persist()`** メソッドは、永続的ストレージ(persistent storage)を使用するパーミッションを要求します。 そして、パーミッションが付与されてボックスモードが永続的な場合は `true` に、そうでない場合は `false` に解決される {{jsxref("Promise")}} を返します。 + +## 構文 + + navigator.storage.persist().then(function(persistent) { ... }) + +### パラメーター + +なし。 + +### 戻り値 + +{{jsxref('Boolean')}} に解決される {{jsxref("Promise")}}。 + +## 例 + +```js +if (navigator.storage && navigator.storage.persist) + navigator.storage.persist().then(function(persistent) { + if (persistent) + console.log("明示的なユーザー操作以外では、ストレージは消去されません。"); + else + console.log("ストレージは UA によってストレージの圧力により消去されるかもしれません。"); + }); +``` + +## 仕様 + +| 仕様 | 状態 | コメント | +| ------------------------------------------------------------------------------------ | ---------------------------- | -------- | +| {{SpecName('Storage','#dom-storagemanager-persist','persist')}} | {{Spec2('Storage')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.StorageManager.persist")}} diff --git a/files/ja/web/api/storagemanager/persisted/index.html b/files/ja/web/api/storagemanager/persisted/index.html deleted file mode 100644 index ebdd49f8487e34..00000000000000 --- a/files/ja/web/api/storagemanager/persisted/index.html +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: StorageManager.persisted() -slug: Web/API/StorageManager/persisted -tags: - - Method - - Reference - - Secure context - - Storage API - - persisted() -translation_of: Web/API/StorageManager/persisted ---- -

{{securecontext_header}}{{APIRef("Storage")}}{{SeeCompatTable}}

- -

{{domxref("StorageManager")}} インターフェイスの persisted() メソッドは、サイトのストレージに対してボックスモードが永続的であれば true に解決される {{jsxref("Promise")}} を返します。

- -

構文

- -
navigator.storage.persisted().then(function(persistent) { ... })
- -

パラメーター

- -

なし。

- -

戻り値

- -

{{jsxref('Boolean')}} に解決される {{jsxref("Promise")}}。

- -

- -
if (navigator.storage && navigator.storage.persist)
-  navigator.storage.persisted().then(function(persistent) {
-    if (persistent)
-      console.log("明示的なユーザー操作以外では、ストレージは消去されません。");
-    else
-      console.log("ストレージは UA によってストレージの圧力により消去されるかもしれません。");
-  });
- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('Storage','#dom-storagemanager-persisted','persisted')}}{{Spec2('Storage')}}初期定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.StorageManager.persisted")}}

diff --git a/files/ja/web/api/storagemanager/persisted/index.md b/files/ja/web/api/storagemanager/persisted/index.md new file mode 100644 index 00000000000000..2fec10ac8c433b --- /dev/null +++ b/files/ja/web/api/storagemanager/persisted/index.md @@ -0,0 +1,48 @@ +--- +title: StorageManager.persisted() +slug: Web/API/StorageManager/persisted +tags: + - Method + - Reference + - Secure context + - Storage API + - persisted() +translation_of: Web/API/StorageManager/persisted +--- +{{securecontext_header}}{{APIRef("Storage")}}{{SeeCompatTable}} + +{{domxref("StorageManager")}} インターフェイスの **`persisted()`** メソッドは、サイトのストレージに対してボックスモードが永続的であれば `true` に解決される {{jsxref("Promise")}} を返します。 + +## 構文 + + navigator.storage.persisted().then(function(persistent) { ... }) + +### パラメーター + +なし。 + +### 戻り値 + +{{jsxref('Boolean')}} に解決される {{jsxref("Promise")}}。 + +## 例 + +```js +if (navigator.storage && navigator.storage.persist) + navigator.storage.persisted().then(function(persistent) { + if (persistent) + console.log("明示的なユーザー操作以外では、ストレージは消去されません。"); + else + console.log("ストレージは UA によってストレージの圧力により消去されるかもしれません。"); + }); +``` + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------------------------------- | ---------------------------- | -------- | +| {{SpecName('Storage','#dom-storagemanager-persisted','persisted')}} | {{Spec2('Storage')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.StorageManager.persisted")}} diff --git a/files/ja/web/api/streams_api/concepts/index.html b/files/ja/web/api/streams_api/concepts/index.html deleted file mode 100644 index 719c2f21a875a0..00000000000000 --- a/files/ja/web/api/streams_api/concepts/index.html +++ /dev/null @@ -1,119 +0,0 @@ ---- -title: Streams API の概念 -slug: Web/API/Streams_API/Concepts -tags: - - API - - Streams - - concepts -translation_of: Web/API/Streams_API/Concepts ---- -
{{apiref("Streams")}}
- -

Streams API は、非常に便利なツールセットを Web プラットフォームに追加し、JavaScript がネットワーク経由で受信したデータのストリームにプログラムでアクセスし、開発者の希望どおりに処理できるようにするオブジェクトを提供します。 ストリームに関連する概念と用語の一部は、初めての場合もあります。 この記事では、それら知っておく必要のあるすべてを説明します。

- -

読み取り可能なストリーム

- -

読み取り可能なストリームは、基になるソース(underlying source)から流れる {{domxref("ReadableStream")}} オブジェクトによって JavaScript で表されるデータソースです。 基になるソースは、ネットワーク上のどこか、またはデータを取得するドメインのどこかにあるリソースです。

- -

基になるソースには、次の2つのタイプがあります。

- - - -

データは、チャンク(chunks)と呼ばれる小さな断片で順番に読み取られます。 チャンクは1バイトにすることも、特定のサイズの型付き配列など、より大きなものにすることもできます。 単一のストリームには、さまざまなサイズとタイプのチャンクを含めることができます。

- -

- -

ストリームに置かれたチャンクは、キューに入れられた(enqueued)と言われます。 これは、読み取りの準備ができているキューで待機していることを意味します。 内部キュー(internal queue)は、まだ読み取られていないチャンクを追跡します(下の内部キューとキューイング戦略のセクションを参照)。

- -

ストリーム内のチャンクはリーダー(reader)によって読み取られます。 これにより、一度に1つのチャンクでデータが処理されるため、ユーザーは任意の種類の操作を実行できます。 リーダーとそれに付随する他の処理コードは、コンシューマー(consumer)と呼ばれます。

- -

また、コントローラー(controller)と呼ばれる構造も使用します。 各リーダーには、ストリームを制御する(例えば、必要に応じてキャンセルする)ことができるコントローラーが関連付けられています 。

- -

一度にストリームを読み取ることができるのは1つのリーダーのみです。 リーダーが作成され、ストリームの読み取りを開始すると、ストリームはアクティブなリーダー(active reader)にロックされている(locked)と言います。 別のリーダーにストリームの読み取りを開始させる場合は、通常、最初のリーダーをキャンセルしてから他の操作を行う必要があります(ですが、ストリームを tee することができます。下のティーイングのセクションを参照)。

- -

読み取り可能なストリームには2つの異なるタイプがあることに注意してください。 従来の読み取り可能なストリームに加えて、バイトストリームと呼ばれるタイプがあります。 これは、基になるバイトソース(BYOB または bring your own buffer(独自のバッファーを持ち込む)とも呼ばれる)のソースを読み取るための従来のストリームの拡張バージョンです。 これにより、開発者が提供するバッファにストリームを直接読み込むことができ、必要なコピーが最小限に抑えられます。 コードが使用する基になるストリーム(そして拡張により、リーダーとコントローラー)は、最初にストリームがどのように作成されたかによって異なります({{domxref("ReadableStream.ReadableStream","ReadableStream()")}} コンストラクターのページを参照)。

- -
-

重要: バイトストリームは、まだどこにも実装されていません。 仕様の詳細が実装に十分な完成状態にあるかどうかについて疑問が提起されています。 これは時間とともに変化する可能性があります。

-
- -

フェッチ要求からの {{domxref("Response.body")}} などのメカニズムを介して既製の読み取り可能なストリームを使用するか、{{domxref("ReadableStream.ReadableStream","ReadableStream()")}} コンストラクターを使用して独自のストリームを使用できます。

- -

ティーイング

- -

一度にストリームを読み取ることができるのは1つのリーダーだけですが、ストリームを2つの同一のコピーに分割し、2つの別々のリーダーで読み取ることができます。 これをティーイング(teeing)と呼びます。

- -

JavaScript では、これを {{domxref("ReadableStream.tee()")}} メソッドを介して実現します — 元の読み取り可能なストリームの2つの同一コピーを含む配列を出力し、2つの別々のリーダーで個別に読み取ることができます。

- -

例えば、サーバーから応答を取得してブラウザーにストリームしたいが、ServiceWorker キャッシュにもストリームしたい場合に、ServiceWorker でこれを行うことができます。 応答のボディを複数回使用することはできず、ストリームを一度に複数のリーダーで読み取ることはできないため、これを行うには2つのコピーが必要です。

- -

- -

書き込み可能なストリーム

- -

書き込み可能なストリーム(writable stream)は、{{domxref("WritableStream")}} オブジェクトによって JavaScript で表されるデータの書き込み先です。 これは、基になるシンク(underlying sink、生データが書き込まれる下位レベルの I/O シンク)の上部の抽象化として機能します。

- -

データは、ライター(writer)を介して一度に1つのチャンクでストリームに書き込まれます。 チャンクは、リーダーのチャンクと同様に、多数の形式をとることができます。 任意のコードを使用して、書き込み可能なチャンクを生成できます。 ライターとそれに関連するコードをプロデューサー(producer)と呼びます。

- -

ライターが作成され、ストリームへの書き込みを開始すると、ストリームはアクティブなライター(active writer)にロックされている(locked)と言われます。 一度に書き込み可能なストリームに書き込むことができるのは、1つのライターのみです。 別のライターにストリームへの書き込みを開始させたい場合は、通常、別のライターを取りつける前にそれを中止する必要があります。

- -

内部キュー(internal queue)は、ストリームに書き込まれたが、基になるシンクによってまだ処理されていないチャンクを追跡します。

- -

また、コントローラーと呼ばれる構造も使用します。 各ライターには、ストリームを制御する(例えば、必要に応じてストリームを中止する)ことができるコントローラーが関連付けられています 。

- -

- -

{{domxref("WritableStream.WritableStream","WritableStream()")}} コンストラクターを使用して、書き込み可能なストリームを利用できます。 現在、これらのブラウザーでの可用性は非常に限られています。

- -

パイプチェーン

- -

Streams API を使用すると、パイプチェーン(pipe chain)と呼ばれる構造を使用して、ストリームを相互にパイプすることができます(または、少なくともブラウザーが関連機能を実装する場合はそうなります)。 これを容易にするために、仕様には次の2つのメソッドがあります。

- - - -

パイプチェーンの始まりは元のソース(original source)と呼ばれ、終わりは最終的なシンク(ultimate sink)と呼ばれます。

- -

- -
-

: この機能はまだ十分に検討されておらず、多くのブラウザーでは利用できません。 ある時点で、仕様作成者は、TransformStream クラスのようなものを追加して、変換ストリームの作成を容易にすることを望んでいます。

-
- -

バックプレッシャー

- -

ストリームの重要な概念はバックプレッシャー(backpressure)です。 これは、単一のストリームまたはパイプチェーンが読み取り/書き込みの速度を調整するプロセスです。 チェーンの後半のストリームがまだビジーで、さらに多くのチャンクを受け入れる準備ができていない場合、チェーンを介して信号を逆方向に送信して、より前の変換ストリーム(または元のソース)に必要に応じて配信速度を落とすよう指示し、どこもボトルネックにならないようにします。

- -

ReadableStream でバックプレッシャーを使用するには、コントローラーの {{domxref("ReadableStreamDefaultController.desiredSize")}} プロパティを照会することで、コンシューマーが希望するチャンクサイズをコントローラーに問い合わせます。 それが低すぎる場合、ReadableStream は、基になるソースにデータの送信を停止するように指示でき、ストリームチェーンに沿ってバックプレッシャーをかけます。

- -

後でコンシューマが再びデータを受信したい場合は、ストリームの作成で pull メソッドを使用して、データをストリームに与えるよう基になるソースに指示できます。

- -

内部キューとキューイング戦略

- -

前に述べたように、まだ処理されて終了していないストリーム内のチャンクは、内部キューによって追跡されます。

- - - -

内部キューは、内部キューの状態(internal queue state)に基づいてバックプレッシャーを通知する方法を決定するキューイング戦略(queuing strategy)を採用しています。

- -

一般に、この戦略では、キュー内のチャンクのサイズを最高水準点(high water mark)と呼ばれる値と比較します。これは、キューが現実的に管理できる最大の合計チャンクサイズです。

- -

実行される計算は次です。

- -
最高水準点 - キュー内のチャンクの合計サイズ = 希望サイズ
- -

希望サイズ(desired size)は、ストリームの流れを維持するためにストリームが受け入れることができるチャンクのサイズですが、サイズは最高水準点未満です。 計算が実行された後、希望サイズをゼロより大きく保ちながら、ストリームの流れを可能な限り高速に保つために、必要に応じてチャンク生成が減速/高速化されます。 値がゼロ(書き込み可能なストリームの場合はそれ以下)になった場合、ストリームが処理できるよりも速くチャンクが生成されていることを意味し、問題が発生します。

- -
-

: ゼロまたは負の希望サイズの場合に何が起こるかは、これまで仕様で実際に定義されていません。 忍耐は美徳なり。

-
- -

例として、1のチャンクサイズと3の最高水準点を考えてみましょう。 これは、最高水準点に到達してバックプレッシャーが適用される前に、最大3つのチャンクをキューに入れることができることを意味します。

diff --git a/files/ja/web/api/streams_api/concepts/index.md b/files/ja/web/api/streams_api/concepts/index.md new file mode 100644 index 00000000000000..4986a69c09c3b0 --- /dev/null +++ b/files/ja/web/api/streams_api/concepts/index.md @@ -0,0 +1,107 @@ +--- +title: Streams API の概念 +slug: Web/API/Streams_API/Concepts +tags: + - API + - Streams + - concepts +translation_of: Web/API/Streams_API/Concepts +--- +{{apiref("Streams")}} + +[Streams API](/ja/docs/Web/API/Streams_API) は、非常に便利なツールセットを Web プラットフォームに追加し、JavaScript がネットワーク経由で受信したデータのストリームにプログラムでアクセスし、開発者の希望どおりに処理できるようにするオブジェクトを提供します。 ストリームに関連する概念と用語の一部は、初めての場合もあります。 この記事では、それら知っておく必要のあるすべてを説明します。 + +## 読み取り可能なストリーム + +読み取り可能なストリームは、**基になるソース**(underlying source)から流れる {{domxref("ReadableStream")}} オブジェクトによって JavaScript で表されるデータソースです。 基になるソースは、ネットワーク上のどこか、またはデータを取得するドメインのどこかにあるリソースです。 + +基になるソースには、次の 2 つのタイプがあります。 + +- **プッシュソース**(Push sources)は、アクセスしたときに常にデータをプッシュします。 ストリームへのアクセスを開始、一時停止、またはキャンセルするのはユーザー次第です。 例には、動画ストリームや TCP/[Web ソケット](/ja/docs/Web/API/WebSockets_API)が含まれます。 +- **プルソース**(Pull sources)では、接続後、明示的にデータを要求する必要があります。 例には、[Fetch](/ja/docs/Web/API/Fetch_API) や [XHR](/ja/docs/Web/API/XMLHttpRequest/XMLHttpRequest) の呼び出しを介したファイルアクセス操作が含まれます。 + +データは、**チャンク**(chunks)と呼ばれる小さな断片で順番に読み取られます。 チャンクは 1 バイトにすることも、特定のサイズの[型付き配列](/ja/docs/Web/JavaScript/Typed_arrays)など、より大きなものにすることもできます。 単一のストリームには、さまざまなサイズとタイプのチャンクを含めることができます。 + +![](https://mdn.mozillademos.org/files/15819/Readable%20streams.png) + +ストリームに置かれたチャンクは、**キューに入れられた**(enqueued)と言われます。 これは、読み取りの準備ができているキューで待機していることを意味します。 **内部キュー**(internal queue)は、まだ読み取られていないチャンクを追跡します(下の内部キューとキューイング戦略のセクションを参照)。 + +ストリーム内のチャンクは**リーダー**(reader)によって読み取られます。 これにより、一度に 1 つのチャンクでデータが処理されるため、ユーザーは任意の種類の操作を実行できます。 リーダーとそれに付随する他の処理コードは、**コンシューマー**(consumer)と呼ばれます。 + +また、**コントローラー**(controller)と呼ばれる構造も使用します。 各リーダーには、ストリームを制御する(例えば、必要に応じてキャンセルする)ことができるコントローラーが関連付けられています 。 + +一度にストリームを読み取ることができるのは 1 つのリーダーのみです。 リーダーが作成され、ストリームの読み取りを開始すると、ストリームは**アクティブなリーダー**(active reader)に**ロックされている**(locked)と言います。 別のリーダーにストリームの読み取りを開始させる場合は、通常、最初のリーダーをキャンセルしてから他の操作を行う必要があります(ですが、ストリームを **tee** することができます。下のティーイングのセクションを参照)。 + +読み取り可能なストリームには 2 つの異なるタイプがあることに注意してください。 従来の読み取り可能なストリームに加えて、バイトストリームと呼ばれるタイプがあります。 これは、基になるバイトソース(BYOB または bring your own buffer(独自のバッファーを持ち込む)とも呼ばれる)のソースを読み取るための従来のストリームの拡張バージョンです。 これにより、開発者が提供するバッファにストリームを直接読み込むことができ、必要なコピーが最小限に抑えられます。 コードが使用する基になるストリーム(そして拡張により、リーダーとコントローラー)は、最初にストリームがどのように作成されたかによって異なります({{domxref("ReadableStream.ReadableStream","ReadableStream()")}} コンストラクターのページを参照)。 + +> **Warning:** **重要**: バイトストリームは、まだどこにも実装されていません。 仕様の詳細が実装に十分な完成状態にあるかどうかについて疑問が提起されています。 これは時間とともに変化する可能性があります。 + +フェッチ要求からの {{domxref("Response.body")}} などのメカニズムを介して既製の読み取り可能なストリームを使用するか、{{domxref("ReadableStream.ReadableStream","ReadableStream()")}} コンストラクターを使用して独自のストリームを使用できます。 + +## ティーイング + +一度にストリームを読み取ることができるのは 1 つのリーダーだけですが、ストリームを 2 つの同一のコピーに分割し、2 つの別々のリーダーで読み取ることができます。 これを**ティーイング**(teeing)と呼びます。 + +JavaScript では、これを {{domxref("ReadableStream.tee()")}} メソッドを介して実現します — 元の読み取り可能なストリームの 2 つの同一コピーを含む配列を出力し、2 つの別々のリーダーで個別に読み取ることができます。 + +例えば、サーバーから応答を取得してブラウザーにストリームしたいが、[ServiceWorker](/ja/docs/Web/API/Service_Worker_API) キャッシュにもストリームしたい場合に、ServiceWorker でこれを行うことができます。 応答のボディを複数回使用することはできず、ストリームを一度に複数のリーダーで読み取ることはできないため、これを行うには 2 つのコピーが必要です。 + +![](https://mdn.mozillademos.org/files/15820/tee.png) + +## 書き込み可能なストリーム + +**書き込み可能なストリーム**(writable stream)は、{{domxref("WritableStream")}} オブジェクトによって JavaScript で表されるデータの書き込み先です。 これは、**基になるシンク**(underlying sink、生データが書き込まれる下位レベルの I/O シンク)の上部の抽象化として機能します。 + +データは、**ライター**(writer)を介して一度に 1 つのチャンクでストリームに書き込まれます。 チャンクは、リーダーのチャンクと同様に、多数の形式をとることができます。 任意のコードを使用して、書き込み可能なチャンクを生成できます。 ライターとそれに関連するコードを**プロデューサー**(producer)と呼びます。 + +ライターが作成され、ストリームへの書き込みを開始すると、ストリームは**アクティブなライター**(active writer)に**ロックされている**(locked)と言われます。 一度に書き込み可能なストリームに書き込むことができるのは、1 つのライターのみです。 別のライターにストリームへの書き込みを開始させたい場合は、通常、別のライターを取りつける前にそれを中止する必要があります。 + +**内部キュー**(internal queue)は、ストリームに書き込まれたが、基になるシンクによってまだ処理されていないチャンクを追跡します。 + +また、コントローラーと呼ばれる構造も使用します。 各ライターには、ストリームを制御する(例えば、必要に応じてストリームを中止する)ことができるコントローラーが関連付けられています 。 + +![](https://mdn.mozillademos.org/files/15821/writable%20streams.png) + +{{domxref("WritableStream.WritableStream","WritableStream()")}} コンストラクターを使用して、書き込み可能なストリームを利用できます。 現在、これらのブラウザーでの可用性は非常に限られています。 + +## パイプチェーン + +Streams API を使用すると、**パイプチェーン**(pipe chain)と呼ばれる構造を使用して、ストリームを相互にパイプすることができます(または、少なくともブラウザーが関連機能を実装する場合はそうなります)。 これを容易にするために、仕様には次の 2 つのメソッドがあります。 + +- {{domxref("ReadableStream.pipeThrough()")}} — **変換ストリーム**(transform stream)を介してストリームをパイプします。 変換ストリームは、データが書き込まれる書き込み可能なストリームと、データが読み取られる読み取り可能なストリームで構成されるペアです。 これは、データを常に取り込み、新しい状態に変換する一種のトレッドミルとして機能します。 事実上、同じストリームに書き込まれ、同じ値が読み取られます。 簡単な例は、生のバイトが書き込まれ、次に文字列が読み取られるテキストデコーダーです。 仕様には、より有用なアイデアと例があります。 アイデアについては、[ストリームの変換](https://streams.spec.whatwg.org/#ts-model)(英語)と、[この Web ソケットの例](https://streams.spec.whatwg.org/#example-both)(英語)を参照してください。 +- {{domxref("ReadableStream.pipeTo()")}} — パイプチェーンの終点として機能する書き込み可能なストリームにパイプします。 + +パイプチェーンの始まりは**元のソース**(original source)と呼ばれ、終わりは**最終的なシンク**(ultimate sink)と呼ばれます。 + +![](https://mdn.mozillademos.org/files/15818/PipeChain.png) + +> **Note:** **注**: この機能はまだ十分に検討されておらず、多くのブラウザーでは利用できません。 ある時点で、仕様作成者は、`TransformStream` クラスのようなものを追加して、変換ストリームの作成を容易にすることを望んでいます。 + +## バックプレッシャー + +ストリームの重要な概念は**バックプレッシャー**(backpressure)です。 これは、単一のストリームまたはパイプチェーンが読み取り/書き込みの速度を調整するプロセスです。 チェーンの後半のストリームがまだビジーで、さらに多くのチャンクを受け入れる準備ができていない場合、チェーンを介して信号を逆方向に送信して、より前の変換ストリーム(または元のソース)に必要に応じて配信速度を落とすよう指示し、どこもボトルネックにならないようにします。 + +`ReadableStream` でバックプレッシャーを使用するには、コントローラーの {{domxref("ReadableStreamDefaultController.desiredSize")}} プロパティを照会することで、コンシューマーが希望するチャンクサイズをコントローラーに問い合わせます。 それが低すぎる場合、`ReadableStream` は、基になるソースにデータの送信を停止するように指示でき、ストリームチェーンに沿ってバックプレッシャーをかけます。 + +後でコンシューマが再びデータを受信したい場合は、ストリームの作成で `pull` メソッドを使用して、データをストリームに与えるよう基になるソースに指示できます。 + +## 内部キューとキューイング戦略 + +前に述べたように、まだ処理されて終了していないストリーム内のチャンクは、内部キューによって追跡されます。 + +- 読み取り可能なストリームの場合、これらはキューに入れられたがまだ読み取られていないチャンクです。 +- 書き込み可能なストリームの場合、これらは書き込まれたが、基になるシンクによってまだ処理されていないチャンクです。 + +内部キューは、**内部キューの状態**(internal queue state)に基づいてバックプレッシャーを通知する方法を決定する**キューイング戦略**(queuing strategy)を採用しています。 + +一般に、この戦略では、キュー内のチャンクのサイズを**最高水準点**(high water mark)と呼ばれる値と比較します。これは、キューが現実的に管理できる最大の合計チャンクサイズです。 + +実行される計算は次です。 + + 最高水準点 - キュー内のチャンクの合計サイズ = 希望サイズ + +**希望サイズ**(desired size)は、ストリームの流れを維持するためにストリームが受け入れることができるチャンクのサイズですが、サイズは最高水準点未満です。 計算が実行された後、希望サイズをゼロより大きく保ちながら、ストリームの流れを可能な限り高速に保つために、必要に応じてチャンク生成が減速/高速化されます。 値がゼロ(書き込み可能なストリームの場合はそれ以下)になった場合、ストリームが処理できるよりも速くチャンクが生成されていることを意味し、問題が発生します。 + +> **Note:** **注**: ゼロまたは負の希望サイズの場合に何が起こるかは、これまで仕様で実際に定義されていません。 忍耐は美徳なり。 + +例として、1 のチャンクサイズと 3 の最高水準点を考えてみましょう。 これは、最高水準点に到達してバックプレッシャーが適用される前に、最大 3 つのチャンクをキューに入れることができることを意味します。 diff --git a/files/ja/web/api/streams_api/index.html b/files/ja/web/api/streams_api/index.html deleted file mode 100644 index a9adcfbff29adc..00000000000000 --- a/files/ja/web/api/streams_api/index.html +++ /dev/null @@ -1,152 +0,0 @@ ---- -title: Streams API -slug: Web/API/Streams_API -tags: - - API - - Experimental - - JavaScript - - Landing - - Reference - - Streams -translation_of: Web/API/Streams_API ---- -

{{SeeCompatTable}}{{DefaultAPISidebar("Streams")}}

- -
-

Streams API を使用すると、JavaScript がネットワーク経由で受信したデータのストリームにプログラムでアクセスし、開発者の希望どおりに処理できます。

-
- -

概念と使用方法

- -

ストリーミングでは、ネットワーク経由で受信するリソースを小さなチャンクに分割し、少しずつ処理します。 これは、ブラウザーがウェブページに表示されるアセットを受信するときにとにかく行うことです — 動画がバッファされて徐々に再生可能になり、画像が読み込まれるにつれて徐々に表示されることもあります。

- -

しかし、これはこれまで JavaScript で利用できたことはありません。 以前は、何らかの種類のリソース(動画、テキストファイルなど)を処理したい場合は、ファイル全体をダウンロードし、適切な形式にデシリアライズされるのを待ってから、完全に受信した後に全部まとめて処理する必要がありました。

- -

Streams が JavaScript で利用できるようになったことで、これがすべて変わりました — クライアント側で利用可能になると、バッファ、文字列、または blob を生成せずに、JavaScript で少しずつ生データの処理を開始できます。

- -

- -

さらに利点もあります。 ストリームの開始または終了の検出、ストリームの連鎖、エラー処理と必要に応じたストリームのキャンセル、ストリームの読み取り速度への対応が可能です。

- -

Streams の基本的な使用法は、応答をストリームとして利用可能にすることにかかっています。 例えば、成功したフェッチ要求によって返された応答の {{domxref("Body")}} は、{{domxref("ReadableStream")}} として公開できます。 その後、{{domxref("ReadableStream.getReader()")}} で作成したリーダーを使用して読み取り、{{domxref("ReadableStream.cancel()")}} でキャンセルできます。

- -

より複雑な用途では、例えばサービスワーカー内でデータを処理するために、{{domxref("ReadableStream.ReadableStream", "ReadableStream()")}} コンストラクターを使用して独自のストリームを作成します。

- -

{{domxref("WritableStream")}} を使用してストリームにデータを書き込むこともできます。

- -
-

: ストリームの理論と実践の詳細については、Streams API の概念読み取り可能なストリームの使用書き込み可能なストリームの使用の記事をご覧ください。

-
- -

ストリームのインターフェイス

- -

読み取り可能なストリーム

- -
-
{{domxref("ReadableStream")}}
-
読み取り可能なデータのストリームを表します。 Fetch API の応答ストリーム、または開発者定義のストリーム(カスタムの {{domxref("ReadableStream.ReadableStream", "ReadableStream()")}} コンストラクターなど)を処理するために使用できます。
-
{{domxref("ReadableStreamDefaultReader")}}
-
ネットワークから提供されたストリームデータ(フェッチ要求など)を読み取るために使用できるデフォルトのリーダーを表します。
-
{{domxref("ReadableStreamDefaultController")}}
-
{{domxref("ReadableStream")}} の状態と内部キューの制御を許可するコントローラーを表します。 デフォルトのコントローラーは、バイトストリームではないストリーム用です。
-
- -

書き込み可能なストリーム

- -
-
{{domxref("WritableStream")}}
-
シンク(sink)と呼ばれる宛先にストリーミングデータを書き込むための標準的な抽象化を提供します。 このオブジェクトには、組み込みのバックプレッシャー(受信側のバッファあふれの予防)とキューイングが付属しています。
-
{{domxref("WritableStreamDefaultWriter")}}
-
データのチャンクを書き込み可能なストリームに書き込むために使用できるデフォルトの書き込み可能なストリームのライターを表します。
-
{{domxref("WritableStreamDefaultController")}}
-
{{domxref("WritableStream")}} の状態の制御を許可するコントローラーを表します。 WritableStream を構築するとき、基になるシンクには、対応する WritableStreamDefaultController インスタンスが与えられて操作します。
-
- - - -
-
{{domxref("ByteLengthQueuingStrategy")}}
-
ストリームを構築するときに使用できる組み込みのバイト長キューイング戦略(byte length queuing strategy)を提供します。
-
{{domxref("CountQueuingStrategy")}}
-
ストリームを構築するときに使用できる組み込みのチャンクカウントキューイング戦略(chunk counting queuing strategy)を提供します。
-
- -

他の API の拡張

- -
-
{{domxref("Request")}}
-
新しい Request オブジェクトが構築されると、その RequestInit ディクショナリの body プロパティで {{domxref("ReadableStream")}} を渡すことができます。 次に、この Request を {{domxref("WindowOrWorkerGlobalScope.fetch()")}} に渡して、ストリームのフェッチを開始できます。
-
{{domxref("Body")}}
-
成功したフェッチ要求によって返された応答の {{domxref("Body")}} は、デフォルトで {{domxref("ReadableStream")}} として公開され、リーダーを取りつけることができます。
-
- - - -
-

重要: これらはまだどこにも実装されておらず、仕様の詳細が実装に十分な完成状態にあるかどうかについて疑問が提起されています。 これは時間とともに変化する可能性があります。

-
- -
-
{{domxref("ReadableStreamBYOBReader")}}
-
開発者が提供するストリームデータの読み取りに使用できる BYOB(bring your own buffer、独自のバッファを持ち込む)リーダーを表します(カスタムの {{domxref("ReadableStream.ReadableStream", "ReadableStream()")}} コンストラクターなど)。
-
{{domxref("ReadableByteStreamController")}}
-
{{domxref("ReadableStream")}} の状態と内部キューの制御を許可するコントローラーを表します。 バイトストリームコントローラーは、バイトストリーム用です。
-
{{domxref("ReadableStreamBYOBRequest")}}
-
{{domxref("ReadableByteStreamController")}} 内のプルインリクエストを表します。
-
- -

- -

Streams API のドキュメントに合わせてサンプルのディレクトリを作成しました。 mdn/dom-examples/streams を参照してください。 例は次のとおりです。

- - - -

他の開発者による例

- - - -

仕様書

- - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName('Streams')}}{{Spec2('Streams')}}初回定義
- -

ブラウザーの互換性

- -

ReadableStream

- -

{{Compat("api.ReadableStream")}}

- -

WritableStream

- -

{{Compat("api.WritableStream")}}

- -

関連情報

- - diff --git a/files/ja/web/api/streams_api/index.md b/files/ja/web/api/streams_api/index.md new file mode 100644 index 00000000000000..3acf2c4e52e434 --- /dev/null +++ b/files/ja/web/api/streams_api/index.md @@ -0,0 +1,117 @@ +--- +title: Streams API +slug: Web/API/Streams_API +tags: + - API + - Experimental + - JavaScript + - Landing + - Reference + - Streams +translation_of: Web/API/Streams_API +--- +{{SeeCompatTable}}{{DefaultAPISidebar("Streams")}} + +Streams API を使用すると、JavaScript がネットワーク経由で受信したデータのストリームにプログラムでアクセスし、開発者の希望どおりに処理できます。 + +## 概念と使用方法 + +ストリーミングでは、ネットワーク経由で受信するリソースを小さなチャンクに分割し、少しずつ処理します。 これは、ブラウザーがウェブページに表示されるアセットを受信するときにとにかく行うことです — 動画がバッファされて徐々に再生可能になり、画像が読み込まれるにつれて徐々に表示されることもあります。 + +しかし、これはこれまで JavaScript で利用できたことはありません。 以前は、何らかの種類のリソース(動画、テキストファイルなど)を処理したい場合は、ファイル全体をダウンロードし、適切な形式にデシリアライズされるのを待ってから、完全に受信した後に全部まとめて処理する必要がありました。 + +Streams が JavaScript で利用できるようになったことで、これがすべて変わりました — クライアント側で利用可能になると、バッファ、文字列、または blob を生成せずに、JavaScript で少しずつ生データの処理を開始できます。 + +![](https://mdn.mozillademos.org/files/15817/Concept.png) + +さらに利点もあります。 ストリームの開始または終了の検出、ストリームの連鎖、エラー処理と必要に応じたストリームのキャンセル、ストリームの読み取り速度への対応が可能です。 + +Streams の基本的な使用法は、応答をストリームとして利用可能にすることにかかっています。 例えば、成功した[フェッチ要求](/ja/docs/Web/API/WindowOrWorkerGlobalScope/fetch)によって返された応答の {{domxref("Body")}} は、{{domxref("ReadableStream")}} として公開できます。 その後、{{domxref("ReadableStream.getReader()")}} で作成したリーダーを使用して読み取り、{{domxref("ReadableStream.cancel()")}} でキャンセルできます。 + +より複雑な用途では、例えば[サービスワーカー](/ja/docs/Web/API/Service_Worker_API)内でデータを処理するために、{{domxref("ReadableStream.ReadableStream", "ReadableStream()")}} コンストラクターを使用して独自のストリームを作成します。 + +{{domxref("WritableStream")}} を使用してストリームにデータを書き込むこともできます。 + +> **Note:** **注**: ストリームの理論と実践の詳細については、[Streams API の概念](/ja/docs/Web/API/Streams_API/Concepts)、[読み取り可能なストリームの使用](/ja/docs/Web/API/Streams_API/Using_readable_streams)、[書き込み可能なストリームの使用](/ja/docs/Web/API/Streams_API/Using_writable_streams)の記事をご覧ください。 + +## ストリームのインターフェイス + +### 読み取り可能なストリーム + +- {{domxref("ReadableStream")}} + - : 読み取り可能なデータのストリームを表します。 [Fetch API](/ja/docs/Web/API/Fetch_API) の応答ストリーム、または開発者定義のストリーム(カスタムの {{domxref("ReadableStream.ReadableStream", "ReadableStream()")}} コンストラクターなど)を処理するために使用できます。 +- {{domxref("ReadableStreamDefaultReader")}} + - : ネットワークから提供されたストリームデータ(フェッチ要求など)を読み取るために使用できるデフォルトのリーダーを表します。 +- {{domxref("ReadableStreamDefaultController")}} + - : {{domxref("ReadableStream")}} の状態と内部キューの制御を許可するコントローラーを表します。 デフォルトのコントローラーは、バイトストリームではないストリーム用です。 + +### 書き込み可能なストリーム + +- {{domxref("WritableStream")}} + - : シンク(sink)と呼ばれる宛先にストリーミングデータを書き込むための標準的な抽象化を提供します。 このオブジェクトには、組み込みのバックプレッシャー(受信側のバッファあふれの予防)とキューイングが付属しています。 +- {{domxref("WritableStreamDefaultWriter")}} + - : データのチャンクを書き込み可能なストリームに書き込むために使用できるデフォルトの書き込み可能なストリームのライターを表します。 +- {{domxref("WritableStreamDefaultController")}} + - : {{domxref("WritableStream")}} の状態の制御を許可するコントローラーを表します。 `WritableStream` を構築するとき、基になるシンクには、対応する `WritableStreamDefaultController` インスタンスが与えられて操作します。 + +### 関連するストリームの API と操作 + +- {{domxref("ByteLengthQueuingStrategy")}} + - : ストリームを構築するときに使用できる組み込みのバイト長キューイング戦略(byte length queuing strategy)を提供します。 +- {{domxref("CountQueuingStrategy")}} + - : ストリームを構築するときに使用できる組み込みのチャンクカウントキューイング戦略(chunk counting queuing strategy)を提供します。 + +### 他の API の拡張 + +- {{domxref("Request")}} + - : 新しい `Request` オブジェクトが構築されると、その `RequestInit` ディクショナリの `body` プロパティで {{domxref("ReadableStream")}} を渡すことができます。 次に、この `Request` を {{domxref("WindowOrWorkerGlobalScope.fetch()")}} に渡して、ストリームのフェッチを開始できます。 +- {{domxref("Body")}} + - : 成功した[フェッチ要求](/ja/docs/Web/API/WindowOrWorkerGlobalScope/fetch)によって返された応答の {{domxref("Body")}} は、デフォルトで {{domxref("ReadableStream")}} として公開され、リーダーを取りつけることができます。 + +### ByteStream 関連のインターフェイス + +> **Warning:** **重要**: これらはまだどこにも実装されておらず、仕様の詳細が実装に十分な完成状態にあるかどうかについて疑問が提起されています。 これは時間とともに変化する可能性があります。 + +- {{domxref("ReadableStreamBYOBReader")}} + - : 開発者が提供するストリームデータの読み取りに使用できる BYOB(bring your own buffer、独自のバッファを持ち込む)リーダーを表します(カスタムの {{domxref("ReadableStream.ReadableStream", "ReadableStream()")}} コンストラクターなど)。 +- {{domxref("ReadableByteStreamController")}} + - : {{domxref("ReadableStream")}} の状態と内部キューの制御を許可するコントローラーを表します。 バイトストリームコントローラーは、バイトストリーム用です。 +- {{domxref("ReadableStreamBYOBRequest")}} + - : {{domxref("ReadableByteStreamController")}} 内のプルインリクエストを表します。 + +## 例 + +Streams API のドキュメントに合わせてサンプルのディレクトリを作成しました。 [mdn/dom-examples/streams](https://github.com/mdn/dom-examples/tree/master/streams) を参照してください。 例は次のとおりです。 + +- [Simple stream pump](http://mdn.github.io/dom-examples/streams/simple-pump/)(単純なストリームポンプ): この例は、`ReadableStream` を使用してそのデータを別のストリームに渡す方法を示しています。 +- [Grayscale a PNG](http://mdn.github.io/dom-examples/streams/grayscale-png/)(PNG のグレースケール化): この例は、PNG の `ReadableStream` をグレースケールに変換する方法を示しています。 +- [Simple random stream](http://mdn.github.io/dom-examples/streams/simple-random-stream/)(単純なランダムストリーム): この例は、カスタムストリームを使用してランダムな文字列を生成し、それらをチャンクとしてキューに入れてから、再度読み取る方法を示しています。 +- [Simple tee example](http://mdn.github.io/dom-examples/streams/simple-tee-example/)(単純な tee の例): この例は、単純なランダムストリームの例を拡張したもので、ストリームを tee 化して、両方の結果のストリームの独立して読み取る方法を示しています。 +- [Simple writer](http://mdn.github.io/dom-examples/streams/simple-writer/)(単純なライター): この例では、書き込み可能なストリームに書き込み、ストリームをデコードして、コンテンツを UI に書き込む方法を示します。 +- [Unpack chunks of a PNG](http://mdn.github.io/dom-examples/streams/png-transform-stream/)(PNG のチャンクをアンパックする): この例は、PNG ファイルのデータを PNG チャンクのストリームに変換することにより、{{domxref("ReadableStream.pipeThrough","pipeThrough()")}} を使用して `ReadableStream` を他のデータ型のストリームに変換する方法を示します。 + +他の開発者による例 + +- [Streams、Service Worker、および Fetch を含む進行状況インジケーター](https://fetch-progress.anthum.com/)(英語)。 + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| -------------------------------- | ---------------------------- | -------- | +| {{SpecName('Streams')}} | {{Spec2('Streams')}} | 初回定義 | + +## ブラウザーの互換性 + +### ReadableStream + +{{Compat("api.ReadableStream")}} + +### WritableStream + +{{Compat("api.WritableStream")}} + +## 関連情報 + +- [Streams API の概念](/ja/docs/Web/API/Streams_API/Concepts) +- [読み取り可能なストリームの使用](/ja/docs/Web/API/Streams_API/Using_readable_streams) +- [書き込み可能なストリームの使用](/ja/docs/Web/API/Streams_API/Using_writable_streams) diff --git a/files/ja/web/api/streams_api/using_readable_streams/index.html b/files/ja/web/api/streams_api/using_readable_streams/index.html deleted file mode 100644 index fb991e50b6ad4b..00000000000000 --- a/files/ja/web/api/streams_api/using_readable_streams/index.html +++ /dev/null @@ -1,317 +0,0 @@ ---- -title: 読み取り可能なストリームの使用 -slug: Web/API/Streams_API/Using_readable_streams -tags: - - API - - Controller - - Fetch - - Guide - - ReadableStreams - - Streams - - pipe chains - - readable streams - - reader - - tee -translation_of: Web/API/Streams_API/Using_readable_streams ---- -
{{apiref("Streams")}}
- -

JavaScript 開発者として、ネットワークを介して受信したデータのストリームをチャンクごとにプログラムで読み取り、操作することは非常に便利です! しかし、Streams API の読み取り可能なストリームの機能はどのように使用するのでしょうか? この記事では、その基本について説明します。

- -
-

: この記事は、読者が読み取り可能なストリームのユースケースを理解し、高レベルの概念を理解していることを前提としています。 そうでない場合は、まず Streams の概念と使用方法の概要と専用の Streams API の概念の記事を読んでから、戻ってくることをお勧めします。

-
- -
-

: 書き込み可能なストリームに関する情報を探している場合は、代わりに書き込み可能なストリームの使用を試してください。

-
- -

ブラウザーのサポート

- -

Firefox 65 以降および Chrome 42 以降(および同等の Chromium ベースのブラウザー)で、Fetch の {{domxref("Body")}} オブジェクトをストリームとして消費し、独自のカスタムの読み取り可能なストリームを作成できます。 パイプチェーンは現在 Chrome でのみサポートされており、その機能は変更される可能性があります。

- -

いくつかの例を見つける

- -

この記事では、dom-examples/streams リポジトリから取得したさまざまな例を見ていきます。 そこには完全なソースコードと例へのリンクがあります。

- -

フェッチをストリームとして消費する

- -

Fetch API を使用すると、ネットワーク経由でリソースをフェッチでき、XHR の最新の代替手段が提供されます。 これには多くの利点がありますが、本当に素晴らしいのは、ブラウザーがフェッチの応答を読み取り可能なストリームとして消費する機能を最近追加したことです。

- -

{{domxref("Body")}} ミックスインには {{domxref("Body.body","body")}} プロパティが含まれるようになりました。 これは、ボディの内容を読み取り可能なストリームとして公開する単純なゲッターです。 このミックスインは、{{domxref("Request")}}(要求)インターフェイスと {{domxref("Response")}}(応答)インターフェイスの両方で実装されているため、両方で使用できますが、応答のボディのストリームを消費するであろうことはちょっとだけ明白です。

- -

単純なストリームポンプ(Simple stream pump)の例が示しているように(ライブも参照)、それを公開することは、次のように応答の body プロパティにアクセスするだけのことです。

- -
// 元の画像をフェッチ
-fetch('./tortoise.png')
-// その body を ReadableStream として取得
-.then(response => response.body)
- -

これにより、{{domxref("ReadableStream")}} オブジェクトが提供されます。

- -

リーダーの取り付け

- -

ストリームするボディができました。 ストリームを読むには、リーダーを取り付ける必要があります。 これは、{{domxref("ReadableStream.getReader()")}} メソッドを使用して行われます。

- -
// 元の画像をフェッチ
-fetch('./tortoise.png')
-// その body を ReadableStream として取得
-.then(response => response.body)
-.then(body => {
-  const reader = body.getReader();
- -

このメソッドを呼び出すと、リーダーが作成され、ストリームにロックされます — このリーダーが開放されるまで、他のリーダーはこのストリームを読み取ることができません。 開放するには、例えば {{domxref("ReadableStreamDefaultReader.releaseLock()")}} を呼び出します。

- -

また、response.body は同期的であり、promise を必要としないため、前の例を1ステップ減らすことができることに注意してください。

- -
// 元の画像をフェッチ
-  fetch('./tortoise.png')
-  // その body を ReadableStream として取得
-  .then(response => {
-    const reader = response.body.getReader();
- -

ストリームを読む

- -

リーダーを取り付けたら、{{domxref("ReadableStreamDefaultReader.read()")}} メソッドを使用してストリームからデータチャンクを読み取ることができます。 これにより、ストリームから1つチャンクを読み取って、好きなことを実行できます。 例えば、単純なストリームポンプの例では、新しいカスタム ReadableStream で各チャンクをキューに入れ(これについては次のセクションで詳しく説明します)、そこから新しい {{domxref("Response")}} を作成し、{{domxref("Blob")}} として使用し、 {{domxref("URL.createObjectURL()")}} を使用してその blob からオブジェクト URL を取得し、それを {{htmlelement("img")}} 要素で画面に表示して、元のフェッチした画像のコピーを効果的に作成します。

- -
  return new ReadableStream({
-    start(controller) {
-      return pump();
-      function pump() {
-        return reader.read().then(({ done, value }) => {
-          // データを消費する必要がなくなったら、ストリームを閉じます
-          if (done) {
-              controller.close();
-              return;
-          }
-          // 次のデータチャンクを対象のストリームのキューに入れます
-          controller.enqueue(value);
-          return pump();
-        });
-      }
-    }
-  })
-})
-.then(stream => new Response(stream))
-.then(response => response.blob())
-.then(blob => URL.createObjectURL(blob))
-.then(url => console.log(image.src = url))
-.catch(err => console.error(err));
- -

read() の使用方法を詳しく見てみましょう。 上記の pump() 関数では、最初に結果オブジェクトを含む promise を返す read() を呼び出します。 結果オブジェクトには、次のように読み取りの結果が { done, value } の形式で含まれています。

- -
return reader.read().then(({ done, value }) => {
- -

結果は、次の3つの異なるタイプのいずれかになります。

- - - -

次に、donetrue であるかどうかを確認します。 その場合、読み込むチャンクはもうないので(値は undefined です)、関数から戻り、{{domxref("ReadableStreamDefaultController.close()")}} でカスタムストリームを閉じます。

- -
if (done) {
-  controller.close();
-  return;
-}
- -
-

: close() は、ここで説明している元のストリームではなく、新しいカスタムストリームの一部です。 次のセクションでカスタムストリームについて詳しく説明します。

-
- -

donetrue でない場合、読み込んだ新しいチャンク(結果オブジェクトの value プロパティに含まれる)を処理してから、再度 pump() 関数を呼び出して次のチャンクを読み込みます。

- -
// 次のデータチャンクを対象のストリームのキューに入れます
-controller.enqueue(value);
-return pump();
- -

これは、ストリームのリーダーを使用するときに示される次のような標準パターンです。

- -
    -
  1. ストリームの読み取りを開始する関数を作成します。
  2. -
  3. 読み込むストリームがこれ以上ない場合は、関数から戻ります。
  4. -
  5. さらに読み込むストリームがある場合は、現在のチャンクを処理してから、関数を再度実行します。
  6. -
  7. 読み取るストリームがなくなるまで関数を再帰的に実行し続けます。 この場合、手順2が実行されます。
  8. -
- -

カスタムの読み取り可能なストリームを作成する

- -

この記事で学習している単純なストリームポンプの例には2番目の部分が含まれています — フェッチしたボディから画像をチャンク単位で読み取った後、独自作成の別のカスタムストリームのキューに入れます。 これをどのように作成するのでしょうか? ReadableStream() コンストラクターです。

- -

ReadableStream() コンストラクター

- -

Fetch の場合のように、ブラウザーが提供するストリームから簡単に読み取ることができますが、カスタムストリームを作成して、独自のチャンクを追加する必要がある場合があります。 {{domxref("ReadableStream.ReadableStream","ReadableStream()")}} コンストラクターを使用すると、最初は複雑に見えますが実際にはそれほど悪くない構文を使用してこれを行うことができます。

- -

汎用の構文の骨組みは次のようになります。

- -
const stream = new ReadableStream({
-  start(controller) {
-
-  },
-  pull(controller) {
-
-  },
-  cancel() {
-
-  },
-  type,
-  autoAllocateChunkSize
-}, {
-  highWaterMark,
-  size()
-});
- -

コンストラクターはパラメーターとして2つのオブジェクトを取ります。 最初のオブジェクトは必須であり、データの読み取り元である基になるソースのモデルを JavaScript で作成します。 2番目のオブジェクトはオプションであり、ストリームに使用するカスタムのキューイング戦略を指定できます。 これを行う必要はほとんどないため、ここでは最初のものに集中します。

- -

次のように最初のオブジェクトには最大5つのメンバーを含めることができますが、最初のオブジェクトのみが必要です。

- -
    -
  1. start(controller)ReadableStream が構築された直後に1回だけ呼び出されるメソッド。 このメソッド内には、ストリーム機能を設定するコードを含める必要があります。 例えば、データの生成を開始するか、ソースにアクセスします。
  2. -
  3. pull(controller) — 含まれている場合、ストリームの内部キューがいっぱいになるまで繰り返し呼び出されるメソッド。 これは、より多くのチャンクがキューに入れられるときにストリームを制御するために使用できます。
  4. -
  5. cancel() — 含まれている場合、ストリームをキャンセルすることをアプリが通知した場合に呼び出されるメソッド(例えば、{{domxref("ReadableStream.cancel()")}} が呼び出された場合)。 内容は、ストリームのソースへのアクセスを解放するために必要なことを行う必要があります。
  6. -
  7. type および autoAllocateChunkSize — これらが含まれている場合、ストリームがバイトストリームであることを示すために使用されます。 バイトストリームは、通常の(デフォルトの)ストリームとは目的やユースケースが多少異なるため、今後のチュートリアルで個別に取り上げます。 また、まだどこにも実装されていません。
  8. -
- -

簡単な例のコードをもう一度見ると、次のように ReadableStream() コンストラクターには、フェッチしたストリームからすべてのデータを読み取るための単一のメソッド start() のみが含まれていることがわかります。

- -
  return new ReadableStream({
-    start(controller) {
-      return pump();
-      function pump() {
-        return reader.read().then(({ done, value }) => {
-          // データを消費する必要がなくなったら、ストリームを閉じます
-          if (done) {
-            controller.close();
-            return;
-          }
-          // 次のデータチャンクを対象のストリームのキューに入れます
-          controller.enqueue(value);
-          return pump();
-        });
-      }
-    }
-  })
-})
-
- -

ReadableStream コントローラー

- -

ReadableStream() コンストラクターに渡される start() メソッドと pull() メソッドには controller パラメーターが与えられます。 これらは、ストリームの制御に使用できる {{domxref("ReadableStreamDefaultController")}} クラスのインスタンスです。

- -

この例では、コントローラーの {{domxref("ReadableStreamDefaultController.enqueue","enqueue()")}} メソッドを使用して、値をフェッチしたボディから読み取った後、カスタムストリームのキューに入れます。

- -

さらに、フェッチしたボディの読み取りが完了したら、コントローラーの {{domxref("ReadableStreamDefaultController.close","close()")}} メソッドを使用してカスタムストリームを閉じます。 以前にキューに入れられたチャンクはそれから読み取ることができますが、キューに入れることはできません。 読み取りが終了すると、ストリームは閉じられます。

- -

カスタムストリームからの読み取り

- -

単純なストリームポンプの例では、カスタムの読み取り可能なストリームを {{domxref("Response.Response", "Response")}} コンストラクターの呼び出しに渡すことで消費し、その後 blob() として消費します。

- -
.then(stream => new Response(stream))
-.then(response => response.blob())
-.then(blob => URL.createObjectURL(blob))
-.then(url => console.log(image.src = url))
-.catch(err => console.error(err));
- -

ただし、カスタムストリームは引き続き ReadableStream インスタンスであるため、それにリーダーを取りつけることができます。 例として、カスタムストリームを作成し、いくつかのランダムな文字列をキューに入れてから、[文字列の生成を停止] ボタンが押されるとストリームからデータを再度読み取る、単純なランダムストリーム(Simple random stream)のデモをご覧ください(ライブも参照)。

- -

カスタムストリームのコンストラクターには、{{domxref("WindowTimers.setInterval()")}} 呼び出しを使用して1秒ごとにランダムな文字列を生成する start() メソッドがあります。 次に、{{domxref("ReadableStreamDefaultController.enqueue()")}} を使用してストリームにエンキューします。 ボタンが押されると、インターバルがキャンセルされ、readStream() と呼ばれる関数が呼び出されて、データをストリームから再度読み取ります。 また、チャンクをストリームのキューへ入れることを止めたため、ストリームを閉じます。

- -
const stream = new ReadableStream({
-  start(controller) {
-    interval = setInterval(() => {
-      let string = randomChars();
-      // ストリームに文字列を追加
-      controller.enqueue(string);
-      // それを画面に表示
-      let listItem = document.createElement('li');
-      listItem.textContent = string;
-      list1.appendChild(listItem);
-    }, 1000);
-    button.addEventListener('click', function() {
-      clearInterval(interval);
-      readStream();
-      controller.close();
-    })
-  },
-  pull(controller) {
-    // この例では実際には pull は必要ありません
-  },
-  cancel() {
-    // リーダーがキャンセルされた場合に呼び出されるため、
-    // 文字列の生成を停止する必要があります
-    clearInterval(interval);
-  }
-});
- -

readStream() 関数自体では、{{domxref("ReadableStream.getReader()")}} を使用してリーダーをストリームにロックし、先ほど見たのと同様のパターンに従います。 read() で各チャンクを読み取り、donetrue であるかどうかを確認し、その場合はプロセスを終了し、そうでない場合は read() メソッドを再度実行する前に次のチャンクを読み取って処理します。

- -
function readStream() {
-  const reader = stream.getReader();
-  let charsReceived = 0;
-
-  // read() は、値を受け取ったときに解決するプロミスを返します
-  reader.read().then(function processText({ done, value }) {
-    // 結果オブジェクトには2つのプロパティが含まれます。
-    // done  - ストリームがすべてのデータを既に提供している場合は true。
-    // value - 一部のデータ。 done が true の場合、常に undefined。
-    if (done) {
-      console.log("Stream complete");
-      para.textContent = result;
-      return;
-    }
-
-    charsReceived += value.length;
-    const chunk = value;
-    let listItem = document.createElement('li');
-    listItem.textContent = 'Read ' + charsReceived + ' characters so far. Current chunk = ' + chunk;
-    list2.appendChild(listItem);
-
-    result += chunk;
-
-    // さらに読み、この関数を再度呼び出します
-    return reader.read().then(processText);
-  });
-}
- -

ストリームのクローズとキャンセル

- -

{{domxref("ReadableStreamDefaultController.close()")}} を使用してリーダーを閉じる例を既に示しました。 前に言ったように、以前にキューに入れられたチャンクはすべて読み込まれますが、閉じられているため、それ以上キューに入れることはできません。

- -

ストリームを完全に取り除き、キューに入れられたチャンクを破棄したい場合は、{{domxref("ReadableStream.cancel()")}} または {{domxref("ReadableStreamDefaultReader.cancel()")}} を使用します。

- -

ストリームのティーイング

- -

ストリームを2回同時に読み取りたい場合があります。 これは、{{domxref("ReadableStream.tee()")}} メソッドを介して実現されます — 元の読み取り可能なストリームの2つの同一コピーを含む配列を出力し、2つの別々のリーダーで個別に読み取ることができます。

- -

例えば、サーバーから応答をフェッチしてブラウザーにストリームするが、Service Worker キャッシュにもストリームする場合は、ServiceWorker でこれを行うことができます。 応答のボディを複数回使用することはできず、ストリームを一度に複数のリーダーで読み取ることはできないため、これを行うには2つのコピーが必要です。

- -

単純な tee の例(Simple tee example)でこの例を示します(ライブも参照)。 この例は、単純なランダムストリームとほぼ同じように機能しますが、ボタンを押してランダムな文字列の生成を停止すると、カスタムストリームが取得されて tee され、結果の両方のストリームが読み取られる点が異なります。

- -
function teeStream() {
-    const teedOff = stream.tee();
-    readStream(teedOff[0], list2);
-    readStream(teedOff[1], list3);
-  }
- -

パイプチェーン

- -

トリームの非常に実験的な機能の1つは、ストリームを相互にパイプする機能です(パイプチェーンと呼ばれます)。 これには2つのメソッドが含まれます。 {{domxref("ReadableStream.pipeThrough()")}} は、読み取り可能ストリームをライター/リーダーのペアにパイプしてデータ形式を別の形式に変換し、{{domxref("ReadableStream.pipeTo()")}} は読み取り可能ストリームをパイプチェーンの終点として動作するライターにパイプします。

- -

この機能は非常に実験的な段階であり、変更される可能性があるため、現時点ではあまり深く探求していません。

- -

画像をストリームとしてフェッチし、それをバイナリデータストリームから PNG チャンクを取得するカスタム PNG 変換ストリームにパイプする PNG のチャンクをアンパック(Unpack Chunks of a PNG)という例を作成しました(ライブも参照)。

- -
// 元の画像をフェッチ
-fetch('png-logo.png')
-// その body を ReadableStream として取得
-.then(response => response.body)
-// 元の画像からグレースケール PNG ストリームを作成
-.then(rs => logReadableStream('Fetch Response Stream', rs))
-.then(body => body.pipeThrough(new PNGTransformStream()))
-.then(rs => logReadableStream('PNG Chunk Stream', rs))
- -

まとめ

- -

これは、「デフォルト」の読み取り可能なストリームの基本を説明しています。 バイトストリームがブラウザーで利用可能になったら、今後の別の記事でバイトストリームについて説明します。

diff --git a/files/ja/web/api/streams_api/using_readable_streams/index.md b/files/ja/web/api/streams_api/using_readable_streams/index.md new file mode 100644 index 00000000000000..f7dc9cb6622487 --- /dev/null +++ b/files/ja/web/api/streams_api/using_readable_streams/index.md @@ -0,0 +1,332 @@ +--- +title: 読み取り可能なストリームの使用 +slug: Web/API/Streams_API/Using_readable_streams +tags: + - API + - Controller + - Fetch + - Guide + - ReadableStreams + - Streams + - pipe chains + - readable streams + - reader + - tee +translation_of: Web/API/Streams_API/Using_readable_streams +--- +{{apiref("Streams")}} + +JavaScript 開発者として、ネットワークを介して受信したデータのストリームをチャンクごとにプログラムで読み取り、操作することは非常に便利です! しかし、Streams API の読み取り可能なストリームの機能はどのように使用するのでしょうか? この記事では、その基本について説明します。 + +> **Note:** **注**: この記事は、読者が読み取り可能なストリームのユースケースを理解し、高レベルの概念を理解していることを前提としています。 そうでない場合は、まず [Streams の概念と使用方法の概要](/ja/docs/Web/API/Streams_API#Concepts_and_usage)と専用の [Streams API の概念](/ja/docs/Web/API/Streams_API/Concepts)の記事を読んでから、戻ってくることをお勧めします。 + +> **Note:** **注**: 書き込み可能なストリームに関する情報を探している場合は、代わりに[書き込み可能なストリームの使用](/ja/docs/Web/API/Streams_API/Using_writable_streams)を試してください。 + +## ブラウザーのサポート + +Firefox 65 以降および Chrome 42 以降(および同等の Chromium ベースのブラウザー)で、Fetch の {{domxref("Body")}} オブジェクトをストリームとして消費し、独自のカスタムの読み取り可能なストリームを作成できます。 [パイプチェーン](/ja/docs/Web/API/Streams_API/Concepts#Pipe_chains)は現在 Chrome でのみサポートされており、その機能は変更される可能性があります。 + +## いくつかの例を見つける + +この記事では、[dom-examples/streams](https://github.com/mdn/dom-examples/tree/master/streams) リポジトリから取得したさまざまな例を見ていきます。 そこには完全なソースコードと例へのリンクがあります。 + +## フェッチをストリームとして消費する + +[Fetch API](/ja/docs/Web/API/Fetch_API) を使用すると、ネットワーク経由でリソースをフェッチでき、[XHR](/ja/docs/Web/API/XMLHttpRequest) の最新の代替手段が提供されます。 これには多くの利点がありますが、本当に素晴らしいのは、ブラウザーがフェッチの応答を読み取り可能なストリームとして消費する機能を最近追加したことです。 + +{{domxref("Body")}} ミックスインには {{domxref("Body.body","body")}} プロパティが含まれるようになりました。 これは、ボディの内容を読み取り可能なストリームとして公開する単純なゲッターです。 このミックスインは、{{domxref("Request")}}(要求)インターフェイスと {{domxref("Response")}}(応答)インターフェイスの両方で実装されているため、両方で使用できますが、応答のボディのストリームを消費するであろうことはちょっとだけ明白です。 + +単純なストリームポンプ([Simple stream pump](https://github.com/mdn/dom-examples/tree/master/streams/simple-pump))の例が示しているように([ライブも参照](https://mdn.github.io/dom-examples/streams/simple-pump/))、それを公開することは、次のように応答の `body` プロパティにアクセスするだけのことです。 + +```js +// 元の画像をフェッチ +fetch('./tortoise.png') +// その body を ReadableStream として取得 +.then(response => response.body) +``` + +これにより、{{domxref("ReadableStream")}} オブジェクトが提供されます。 + +### リーダーの取り付け + +ストリームするボディができました。 ストリームを読むには、リーダーを取り付ける必要があります。 これは、{{domxref("ReadableStream.getReader()")}} メソッドを使用して行われます。 + +```js +// 元の画像をフェッチ +fetch('./tortoise.png') +// その body を ReadableStream として取得 +.then(response => response.body) +.then(body => { + const reader = body.getReader(); +``` + +このメソッドを呼び出すと、リーダーが作成され、ストリームにロックされます — このリーダーが開放されるまで、他のリーダーはこのストリームを読み取ることができません。 開放するには、例えば {{domxref("ReadableStreamDefaultReader.releaseLock()")}} を呼び出します。 + +また、`response.body` は同期的であり、promise を必要としないため、前の例を 1 ステップ減らすことができることに注意してください。 + +```js +// 元の画像をフェッチ + fetch('./tortoise.png') + // その body を ReadableStream として取得 + .then(response => { + const reader = response.body.getReader(); +``` + +### ストリームを読む + +リーダーを取り付けたら、{{domxref("ReadableStreamDefaultReader.read()")}} メソッドを使用してストリームからデータチャンクを読み取ることができます。 これにより、ストリームから 1 つチャンクを読み取って、好きなことを実行できます。 例えば、単純なストリームポンプの例では、新しいカスタム `ReadableStream` で各チャンクをキューに入れ(これについては次のセクションで詳しく説明します)、そこから新しい {{domxref("Response")}} を作成し、{{domxref("Blob")}} として使用し、 {{domxref("URL.createObjectURL()")}} を使用してその blob からオブジェクト URL を取得し、それを {{htmlelement("img")}} 要素で画面に表示して、元のフェッチした画像のコピーを効果的に作成します。 + +```js + return new ReadableStream({ + start(controller) { + return pump(); + function pump() { + return reader.read().then(({ done, value }) => { + // データを消費する必要がなくなったら、ストリームを閉じます + if (done) { + controller.close(); + return; + } + // 次のデータチャンクを対象のストリームのキューに入れます + controller.enqueue(value); + return pump(); + }); + } + } + }) +}) +.then(stream => new Response(stream)) +.then(response => response.blob()) +.then(blob => URL.createObjectURL(blob)) +.then(url => console.log(image.src = url)) +.catch(err => console.error(err)); +``` + +`read()` の使用方法を詳しく見てみましょう。 上記の `pump()` 関数では、最初に結果オブジェクトを含む promise を返す `read()` を呼び出します。 結果オブジェクトには、次のように読み取りの結果が `{ done, value }` の形式で含まれています。 + +```js +return reader.read().then(({ done, value }) => { +``` + +結果は、次の 3 つの異なるタイプのいずれかになります。 + +- チャンクが読み取り可能であれば、`{ value: theChunk, done: false }` の形式のオブジェクトで promise が満たされます。 +- ストリームが閉じられると、`{ value: undefined, done: true }` という形式のオブジェクトで promise が満たされます。 +- ストリームにエラーが発生すると、関連するエラーで promise が拒否されます。 + +次に、`done` が `true` であるかどうかを確認します。 その場合、読み込むチャンクはもうないので(値は `undefined` です)、関数から戻り、{{domxref("ReadableStreamDefaultController.close()")}} でカスタムストリームを閉じます。 + +```js +if (done) { + controller.close(); + return; +} +``` + +> **Note:** **注**: `close()` は、ここで説明している元のストリームではなく、新しいカスタムストリームの一部です。 次のセクションでカスタムストリームについて詳しく説明します。 + +`done` が `true` でない場合、読み込んだ新しいチャンク(結果オブジェクトの `value` プロパティに含まれる)を処理してから、再度 `pump()` 関数を呼び出して次のチャンクを読み込みます。 + +```js +// 次のデータチャンクを対象のストリームのキューに入れます +controller.enqueue(value); +return pump(); +``` + +これは、ストリームのリーダーを使用するときに示される次のような標準パターンです。 + +1. ストリームの読み取りを開始する関数を作成します。 +2. 読み込むストリームがこれ以上ない場合は、関数から戻ります。 +3. さらに読み込むストリームがある場合は、現在のチャンクを処理してから、関数を再度実行します。 +4. 読み取るストリームがなくなるまで関数を再帰的に実行し続けます。 この場合、手順 2 が実行されます。 + +## カスタムの読み取り可能なストリームを作成する + +この記事で学習している単純なストリームポンプの例には 2 番目の部分が含まれています — フェッチしたボディから画像をチャンク単位で読み取った後、独自作成の別のカスタムストリームのキューに入れます。 これをどのように作成するのでしょうか? `ReadableStream()` コンストラクターです。 + +### ReadableStream() コンストラクター + +Fetch の場合のように、ブラウザーが提供するストリームから簡単に読み取ることができますが、カスタムストリームを作成して、独自のチャンクを追加する必要がある場合があります。 {{domxref("ReadableStream.ReadableStream","ReadableStream()")}} コンストラクターを使用すると、最初は複雑に見えますが実際にはそれほど悪くない構文を使用してこれを行うことができます。 + +汎用の構文の骨組みは次のようになります。 + +```js +const stream = new ReadableStream({ + start(controller) { + + }, + pull(controller) { + + }, + cancel() { + + }, + type, + autoAllocateChunkSize +}, { + highWaterMark, + size() +}); +``` + +コンストラクターはパラメーターとして 2 つのオブジェクトを取ります。 最初のオブジェクトは必須であり、データの読み取り元である基になるソースのモデルを JavaScript で作成します。 2 番目のオブジェクトはオプションであり、ストリームに使用する[カスタムのキューイング戦略](/ja/docs/Web/API/Streams_API/Concepts#Internal_queues_and_queuing_strategies)を指定できます。 これを行う必要はほとんどないため、ここでは最初のものに集中します。 + +次のように最初のオブジェクトには最大 5 つのメンバーを含めることができますが、最初のオブジェクトのみが必要です。 + +1. `start(controller)` — `ReadableStream` が構築された直後に 1 回だけ呼び出されるメソッド。 このメソッド内には、ストリーム機能を設定するコードを含める必要があります。 例えば、データの生成を開始するか、ソースにアクセスします。 +2. `pull(controller)` — 含まれている場合、ストリームの内部キューがいっぱいになるまで繰り返し呼び出されるメソッド。 これは、より多くのチャンクがキューに入れられるときにストリームを制御するために使用できます。 +3. `cancel()` — 含まれている場合、ストリームをキャンセルすることをアプリが通知した場合に呼び出されるメソッド(例えば、{{domxref("ReadableStream.cancel()")}} が呼び出された場合)。 内容は、ストリームのソースへのアクセスを解放するために必要なことを行う必要があります。 +4. `type` および `autoAllocateChunkSize` — これらが含まれている場合、ストリームがバイトストリームであることを示すために使用されます。 バイトストリームは、通常の(デフォルトの)ストリームとは目的やユースケースが多少異なるため、今後のチュートリアルで個別に取り上げます。 また、まだどこにも実装されていません。 + +簡単な例のコードをもう一度見ると、次のように `ReadableStream()` コンストラクターには、フェッチしたストリームからすべてのデータを読み取るための単一のメソッド `start()` のみが含まれていることがわかります。 + +```js + return new ReadableStream({ + start(controller) { + return pump(); + function pump() { + return reader.read().then(({ done, value }) => { + // データを消費する必要がなくなったら、ストリームを閉じます + if (done) { + controller.close(); + return; + } + // 次のデータチャンクを対象のストリームのキューに入れます + controller.enqueue(value); + return pump(); + }); + } + } + }) +}) +``` + +### ReadableStream コントローラー + +`ReadableStream()` コンストラクターに渡される `start()` メソッドと `pull()` メソッドには `controller` パラメーターが与えられます。 これらは、ストリームの制御に使用できる {{domxref("ReadableStreamDefaultController")}} クラスのインスタンスです。 + +この例では、コントローラーの {{domxref("ReadableStreamDefaultController.enqueue","enqueue()")}} メソッドを使用して、値をフェッチしたボディから読み取った後、カスタムストリームのキューに入れます。 + +さらに、フェッチしたボディの読み取りが完了したら、コントローラーの {{domxref("ReadableStreamDefaultController.close","close()")}} メソッドを使用してカスタムストリームを閉じます。 以前にキューに入れられたチャンクはそれから読み取ることができますが、キューに入れることはできません。 読み取りが終了すると、ストリームは閉じられます。 + +### カスタムストリームからの読み取り + +単純なストリームポンプの例では、カスタムの読み取り可能なストリームを {{domxref("Response.Response", "Response")}} コンストラクターの呼び出しに渡すことで消費し、その後 `blob()` として消費します。 + +```js +.then(stream => new Response(stream)) +.then(response => response.blob()) +.then(blob => URL.createObjectURL(blob)) +.then(url => console.log(image.src = url)) +.catch(err => console.error(err)); +``` + +ただし、カスタムストリームは引き続き `ReadableStream` インスタンスであるため、それにリーダーを取りつけることができます。 例として、カスタムストリームを作成し、いくつかのランダムな文字列をキューに入れてから、\[文字列の生成を停止] ボタンが押されるとストリームからデータを再度読み取る、単純なランダムストリーム([Simple random stream](https://github.com/mdn/dom-examples/blob/master/streams/simple-random-stream/index.html))のデモをご覧ください([ライブも参照](https://mdn.github.io/dom-examples/streams/simple-random-stream/))。 + +カスタムストリームのコンストラクターには、{{domxref("WindowTimers.setInterval()")}} 呼び出しを使用して 1 秒ごとにランダムな文字列を生成する `start()` メソッドがあります。 次に、{{domxref("ReadableStreamDefaultController.enqueue()")}} を使用してストリームにエンキューします。 ボタンが押されると、インターバルがキャンセルされ、`readStream()` と呼ばれる関数が呼び出されて、データをストリームから再度読み取ります。 また、チャンクをストリームのキューへ入れることを止めたため、ストリームを閉じます。 + +```js +const stream = new ReadableStream({ + start(controller) { + interval = setInterval(() => { + let string = randomChars(); + // ストリームに文字列を追加 + controller.enqueue(string); + // それを画面に表示 + let listItem = document.createElement('li'); + listItem.textContent = string; + list1.appendChild(listItem); + }, 1000); + button.addEventListener('click', function() { + clearInterval(interval); + readStream(); + controller.close(); + }) + }, + pull(controller) { + // この例では実際には pull は必要ありません + }, + cancel() { + // リーダーがキャンセルされた場合に呼び出されるため、 + // 文字列の生成を停止する必要があります + clearInterval(interval); + } +}); +``` + +`readStream()` 関数自体では、{{domxref("ReadableStream.getReader()")}} を使用してリーダーをストリームにロックし、先ほど見たのと同様のパターンに従います。 `read()` で各チャンクを読み取り、`done` が `true` であるかどうかを確認し、その場合はプロセスを終了し、そうでない場合は `read()` メソッドを再度実行する前に次のチャンクを読み取って処理します。 + +```js +function readStream() { + const reader = stream.getReader(); + let charsReceived = 0; + + // read() は、値を受け取ったときに解決するプロミスを返します + reader.read().then(function processText({ done, value }) { + // 結果オブジェクトには2つのプロパティが含まれます。 + // done - ストリームがすべてのデータを既に提供している場合は true。 + // value - 一部のデータ。 done が true の場合、常に undefined。 + if (done) { + console.log("Stream complete"); + para.textContent = result; + return; + } + + charsReceived += value.length; + const chunk = value; + let listItem = document.createElement('li'); + listItem.textContent = 'Read ' + charsReceived + ' characters so far. Current chunk = ' + chunk; + list2.appendChild(listItem); + + result += chunk; + + // さらに読み、この関数を再度呼び出します + return reader.read().then(processText); + }); +} +``` + +### ストリームのクローズとキャンセル + +{{domxref("ReadableStreamDefaultController.close()")}} を使用してリーダーを閉じる例を既に示しました。 前に言ったように、以前にキューに入れられたチャンクはすべて読み込まれますが、閉じられているため、それ以上キューに入れることはできません。 + +ストリームを完全に取り除き、キューに入れられたチャンクを破棄したい場合は、{{domxref("ReadableStream.cancel()")}} または {{domxref("ReadableStreamDefaultReader.cancel()")}} を使用します。 + +## ストリームのティーイング + +ストリームを 2 回同時に読み取りたい場合があります。 これは、{{domxref("ReadableStream.tee()")}} メソッドを介して実現されます — 元の読み取り可能なストリームの 2 つの同一コピーを含む配列を出力し、2 つの別々のリーダーで個別に読み取ることができます。 + +例えば、サーバーから応答をフェッチしてブラウザーにストリームするが、Service Worker キャッシュにもストリームする場合は、[ServiceWorker](/ja/docs/Web/API/Service_Worker_API) でこれを行うことができます。 応答のボディを複数回使用することはできず、ストリームを一度に複数のリーダーで読み取ることはできないため、これを行うには 2 つのコピーが必要です。 + +単純な tee の例([Simple tee example](https://github.com/mdn/dom-examples/blob/master/streams/simple-tee-example/index.html))でこの例を示します([ライブも参照](https://mdn.github.io/dom-examples/streams/simple-tee-example/))。 この例は、単純なランダムストリームとほぼ同じように機能しますが、ボタンを押してランダムな文字列の生成を停止すると、カスタムストリームが取得されて tee され、結果の両方のストリームが読み取られる点が異なります。 + +```js +function teeStream() { + const teedOff = stream.tee(); + readStream(teedOff[0], list2); + readStream(teedOff[1], list3); + } +``` + +## パイプチェーン + +トリームの非常に実験的な機能の 1 つは、ストリームを相互にパイプする機能です([パイプチェーン](/ja/docs/Web/API/Streams_API/Concepts#Pipe_chains)と呼ばれます)。 これには 2 つのメソッドが含まれます。 {{domxref("ReadableStream.pipeThrough()")}} は、読み取り可能ストリームをライター/リーダーのペアにパイプしてデータ形式を別の形式に変換し、{{domxref("ReadableStream.pipeTo()")}} は読み取り可能ストリームをパイプチェーンの終点として動作するライターにパイプします。 + +この機能は非常に実験的な段階であり、変更される可能性があるため、現時点ではあまり深く探求していません。 + +画像をストリームとしてフェッチし、それをバイナリデータストリームから PNG チャンクを取得するカスタム PNG 変換ストリームにパイプする PNG のチャンクをアンパック([Unpack Chunks of a PNG](https://github.com/mdn/dom-examples/tree/master/streams/png-transform-stream))という例を作成しました([ライブも参照](https://mdn.github.io/dom-examples/streams/png-transform-stream/))。 + +```js +// 元の画像をフェッチ +fetch('png-logo.png') +// その body を ReadableStream として取得 +.then(response => response.body) +// 元の画像からグレースケール PNG ストリームを作成 +.then(rs => logReadableStream('Fetch Response Stream', rs)) +.then(body => body.pipeThrough(new PNGTransformStream())) +.then(rs => logReadableStream('PNG Chunk Stream', rs)) +``` + +## まとめ + +これは、「デフォルト」の読み取り可能なストリームの基本を説明しています。 バイトストリームがブラウザーで利用可能になったら、今後の別の記事でバイトストリームについて説明します。 diff --git a/files/ja/web/api/streams_api/using_writable_streams/index.html b/files/ja/web/api/streams_api/using_writable_streams/index.html deleted file mode 100644 index a743cef75de7f2..00000000000000 --- a/files/ja/web/api/streams_api/using_writable_streams/index.html +++ /dev/null @@ -1,170 +0,0 @@ ---- -title: 書き込み可能なストリームの使用 -slug: Web/API/Streams_API/Using_writable_streams -tags: - - API - - Controller - - Guide - - Streams - - WritableStream - - writable streams - - writer -translation_of: Web/API/Streams_API/Using_writable_streams ---- -
{{apiref("Streams")}}
- -

JavaScript 開発者として、プログラムでストリームにデータを書き込むことは非常に便利です! この記事では、Streams API の書き込み可能なストリームの機能について説明します。

- -
-

: この記事は、書き込み可能なストリームのユースケースを理解し、高レベルの概念を理解していることを前提としています。 そうでない場合は、まず Streams の概念と使用方法の概要と専用の Streams API の概念の記事を読んでから、戻ってくることをお勧めします。

-
- -
-

: 読み取り可能なストリームに関する情報を探している場合は、代わりに読み取り可能なストリームの使用を試してください。

-
- -

ブラウザーのサポート

- -

Streams API は実験的なものであり、サポートは現在初期段階にあります。 現在、基本的な書き込み可能なストリームが実装されているのは Chrome のみです。

- -

例の紹介

- -

dom-examples/streams リポジトリには、単純なライターの例(Simple writer example)があります(ライブも参照)。 これは、指定されたメッセージを取得して書き込み可能なストリームに書き込み、ストリームに書き込まれるときに UI に各チャンクを表示し、書き込みが終了すると UI にメッセージ全体を表示します。

- -

書き込み可能なストリームの仕組み

- -

書き込み可能なストリーム機能のデモの仕組みを見てみましょう。

- -

書き込み可能なストリームの構築

- -

書き込み可能なストリームを作成するには、{{domxref("WritableStream.WritableStream","WritableStream()")}} コンストラクターを使用します。 構文は最初は複雑に見えますが、実際にはそれほど悪くはありません。

- -

構文の骨組みは次のようになります。

- -
const stream = new WritableStream({
-  start(controller) {
-
-  },
-  write(chunk,controller) {
-
-  },
-  close(controller) {
-
-  },
-  abort(reason) {
-
-  }
-}, {
-  highWaterMark,
-  size()
-});
- -

コンストラクターはパラメーターとして2つのオブジェクトを取ります。 最初のオブジェクトは必須であり、データの書き込み先の基になるシンクのモデルを JavaScript で作成します。 2番目のオブジェクトはオプションであり、{{domxref("ByteLengthQueuingStrategy")}} または {{domxref("CountQueuingStrategy")}} のインスタンスの形式をとる、ストリームに使用するカスタムのキューイング戦略を指定できます。

- -

次のように最初のオブジェクトには最大4つのメンバーを含めることができますが、それらはすべてオプションです。

- -
    -
  1. start(controller) — {{domxref("WritableStream")}} が構築された直後に1回だけ呼び出されるメソッド。 このメソッド内には、ストリーム機能を設定するコードを含める必要があります。 例えば、基になるシンクへのアクセスを取得します。
  2. -
  3. write(chunk,controller) — 新しいチャンク(chunk パラメーターで指定)を基になるシンクに書き込む準備ができるたびに繰り返し呼び出されるメソッド。
  4. -
  5. close(controller) — ストリームへのチャンクの書き込みが完了したことをアプリが通知した場合に呼び出されるメソッド。 基になるシンクへの書き込みを完了し、アクセスを解放するために必要なことは何でも行う必要があります。
  6. -
  7. abort(reason) — ストリームを突然閉じてエラー状態にしたいとアプリが通知した場合に呼び出されるメソッド。
  8. -
- -

この例のコンストラクター呼び出しは次のようになります。

- -
const decoder = new TextDecoder("utf-8");
-const queuingStrategy = new CountQueuingStrategy({ highWaterMark: 1 });
-let result = "";
-const writableStream = new WritableStream({
-  // シンクの実装
-  write(chunk) {
-    return new Promise((resolve, reject) => {
-      var buffer = new ArrayBuffer(2);
-      var view = new Uint16Array(buffer);
-      view[0] = chunk;
-      var decoded = decoder.decode(view, { stream: true });
-      var listItem = document.createElement('li');
-      listItem.textContent = "Chunk decoded: " + decoded;
-      list.appendChild(listItem);
-      result += decoded;
-      resolve();
-    });
-  },
-  close() {
-    var listItem = document.createElement('li');
-    listItem.textContent = "[MESSAGE RECEIVED] " + result;
-    list.appendChild(listItem);
-  },
-  abort(err) {
-    console.log("Sink error:", err);
-  }
-}, queuingStrategy);
- - - -

書き込み

- -

実際にストリームにコンテンツを書き込むには、次のように sendMessage() 関数を呼び出して、書き込むメッセージと書き込み先のストリームを渡します。

- -
sendMessage("Hello, world.", writableStream);
- -

sendMessage() の定義は次のようになります。

- -
function sendMessage(message, writableStream) {
-  // defaultWriter は WritableStreamDefaultWriter 型です
-  const defaultWriter = writableStream.getWriter();
-  const encoder = new TextEncoder();
-  const encoded = encoder.encode(message, { stream: true });
-  encoded.forEach((chunk) => {
-    defaultWriter.ready
-      .then(() => {
-        return defaultWriter.write(chunk);
-      })
-      .then(() => {
-        console.log("Chunk written to sink.");
-      })
-      .catch((err) => {
-        console.log("Chunk error:", err);
-      });
-  });
-  // ライターを閉じる前にすべてのチャンクが確実に
-  // 書き込まれるように、ready を再度呼び出します。
-  defaultWriter.ready
-    .then(() => {
-      defaultWriter.close();
-    })
-    .then(() => {
-      console.log("All chunks written");
-    })
-    .catch((err) => {
-      console.log("Stream error:", err);
-    });
-}
- -

したがって、ここでは、{{domxref("WritableStream.getWriter()")}} を使用してストリームにチャンクを書き込むライターを作成します。 これにより、{{domxref("WritableStreamDefaultWriter")}} インスタンスが作成されます。

- -

また、関連するコンストラクターを使用して新しい {{domxref("TextEncoder")}} インスタンスを作成し、メッセージをチャンクにエンコードしてストリームに入れます。

- -

エンコードされたチャンクを使用して、結果の配列で {{jsxref("Array/forEach")}} を呼び出します。 このブロック内で、{{domxref("WritableStreamDefaultWriter.ready")}} を使用して、ライターに別のチャンクを書き込む準備ができているかどうかを確認します。 ready は、この場合に満たされるプロミスを返します。 その中で、{{domxref("WritableStreamDefaultWriter.write()")}} を呼び出して、実際にストリームにチャンクを書き込みます。 これにより、前述のように、WritableStream() コンストラクター内で指定された write() メソッドもトリガーされます。

- -

チャンクがすべて書き込まれた後、最後のチャンクの書き込みが完了し、すべての作業が完了したことを確認するために、もう一度 ready のチェックを実行します。この ready のチェックが完了すると、{{domxref("WritableStreamDefaultWriter.close()")}} を呼び出してストリームを閉じます。 これにより、前述のように、WritableStream() コンストラクター内で指定された close() メソッドもトリガーされます。

- -

コントローラー

- -

WritableStream() 構文の骨組みを学習するときに気付くように、start()write()、および close() メソッドには、オプションで controller パラメーターを渡すことができます。 これには、{{domxref("WritableStreamDefaultController")}} インターフェイスのインスタンスが含まれます。 これは、開発者が必要に応じてストリームをさらに制御するために使用できます。

- -

現在、このインターフェイスで使用できるメソッドは {{domxref("WritableStreamDefaultController.error()")}} のみです。 このメソッドを呼び出すと、ストリームとの今後の相互作用でエラーが発生します。 これは、アプリの別の部分がうまくいかず、がらくたがストリームに静かに書き込まれる (または同様に悪い)危険を冒すのではなく、システム全体がきれいに失敗するようにエラーをストリームに伝播したい場合に便利です。

- -

終了および中止

- -

上記のように、書き込みが終了すると close() メソッドを呼び出し、WritableStream() コンストラクター内で指定された close() メソッドをトリガーします。

- -

{{domxref("WritableStreamDefaultWriter.abort()")}} を呼び出してストリームを中止することもできます。

- -

違いは、close() を呼び出すと、ストリームが閉じられる前に、以前にキューに入れられたチャンクが書き込まれ、終了することです。

- -

abort() を呼び出すと、以前にキューに入れられたチャンクはすぐに破棄され、ストリームはエラー状態に移行します。 また、これにより、WritableStream() コンストラクターで指定された abort() メソッドが呼び出されます。

diff --git a/files/ja/web/api/streams_api/using_writable_streams/index.md b/files/ja/web/api/streams_api/using_writable_streams/index.md new file mode 100644 index 00000000000000..068677864309d7 --- /dev/null +++ b/files/ja/web/api/streams_api/using_writable_streams/index.md @@ -0,0 +1,170 @@ +--- +title: 書き込み可能なストリームの使用 +slug: Web/API/Streams_API/Using_writable_streams +tags: + - API + - Controller + - Guide + - Streams + - WritableStream + - writable streams + - writer +translation_of: Web/API/Streams_API/Using_writable_streams +--- +{{apiref("Streams")}} + +JavaScript 開発者として、プログラムでストリームにデータを書き込むことは非常に便利です! この記事では、[Streams API](/ja/docs/Web/API/Streams_API) の書き込み可能なストリームの機能について説明します。 + +> **Note:** **注**: この記事は、書き込み可能なストリームのユースケースを理解し、高レベルの概念を理解していることを前提としています。 そうでない場合は、まず [Streams の概念と使用方法の概要](/ja/docs/Web/API/Streams_API#Concepts_and_usage)と専用の [Streams API の概念](/ja/docs/Web/API/Streams_API/Concepts)の記事を読んでから、戻ってくることをお勧めします。 + +> **Note:** **注**: 読み取り可能なストリームに関する情報を探している場合は、代わりに[読み取り可能なストリーム](/ja/docs/Web/API/Streams_API/Using_readable_streams)の使用を試してください。 + +## ブラウザーのサポート + +Streams API は実験的なものであり、サポートは現在初期段階にあります。 現在、基本的な書き込み可能なストリームが実装されているのは Chrome のみです。 + +## 例の紹介 + +[dom-examples/streams](https://github.com/mdn/dom-examples/tree/master/streams) リポジトリには、単純なライターの例([Simple writer example](https://github.com/mdn/dom-examples/blob/master/streams/simple-writer/index.html))があります([ライブも参照](https://mdn.github.io/dom-examples/streams/simple-writer/))。 これは、指定されたメッセージを取得して書き込み可能なストリームに書き込み、ストリームに書き込まれるときに UI に各チャンクを表示し、書き込みが終了すると UI にメッセージ全体を表示します。 + +## 書き込み可能なストリームの仕組み + +書き込み可能なストリーム機能のデモの仕組みを見てみましょう。 + +### 書き込み可能なストリームの構築 + +書き込み可能なストリームを作成するには、{{domxref("WritableStream.WritableStream","WritableStream()")}} コンストラクターを使用します。 構文は最初は複雑に見えますが、実際にはそれほど悪くはありません。 + +構文の骨組みは次のようになります。 + +```js +const stream = new WritableStream({ + start(controller) { + + }, + write(chunk,controller) { + + }, + close(controller) { + + }, + abort(reason) { + + } +}, { + highWaterMark, + size() +}); +``` + +コンストラクターはパラメーターとして 2 つのオブジェクトを取ります。 最初のオブジェクトは必須であり、データの書き込み先の基になるシンクのモデルを JavaScript で作成します。 2 番目のオブジェクトはオプションであり、{{domxref("ByteLengthQueuingStrategy")}} または {{domxref("CountQueuingStrategy")}} のインスタンスの形式をとる、ストリームに使用する[カスタムのキューイング戦略](/ja/docs/Web/API/Streams_API/Concepts#Internal_queues_and_queuing_strategies)を指定できます。 + +次のように最初のオブジェクトには最大 4 つのメンバーを含めることができますが、それらはすべてオプションです。 + +1. `start(controller)` — {{domxref("WritableStream")}} が構築された直後に 1 回だけ呼び出されるメソッド。 このメソッド内には、ストリーム機能を設定するコードを含める必要があります。 例えば、基になるシンクへのアクセスを取得します。 +2. `write(chunk,controller)` — 新しいチャンク(`chunk` パラメーターで指定)を基になるシンクに書き込む準備ができるたびに繰り返し呼び出されるメソッド。 +3. `close(controller)` — ストリームへのチャンクの書き込みが完了したことをアプリが通知した場合に呼び出されるメソッド。 基になるシンクへの書き込みを完了し、アクセスを解放するために必要なことは何でも行う必要があります。 +4. `abort(reason)` — ストリームを突然閉じてエラー状態にしたいとアプリが通知した場合に呼び出されるメソッド。 + +この例のコンストラクター呼び出しは次のようになります。 + +```js +const decoder = new TextDecoder("utf-8"); +const queuingStrategy = new CountQueuingStrategy({ highWaterMark: 1 }); +let result = ""; +const writableStream = new WritableStream({ + // シンクの実装 + write(chunk) { + return new Promise((resolve, reject) => { + var buffer = new ArrayBuffer(2); + var view = new Uint16Array(buffer); + view[0] = chunk; + var decoded = decoder.decode(view, { stream: true }); + var listItem = document.createElement('li'); + listItem.textContent = "Chunk decoded: " + decoded; + list.appendChild(listItem); + result += decoded; + resolve(); + }); + }, + close() { + var listItem = document.createElement('li'); + listItem.textContent = "[MESSAGE RECEIVED] " + result; + list.appendChild(listItem); + }, + abort(err) { + console.log("Sink error:", err); + } +}, queuingStrategy); +``` + +- `write()` メソッドには、書き込まれた各チャンクを UI に書き込める形式にデコードするコードを含むプロミスが含まれています。 これは、各チャンクが実際に書き込まれるときに呼び出されます(次のセクションを参照)。 +- `close()` メソッドは、書き込みが終了すると自動的に呼び出されます — デコードされた結果全体を 1 つの文字列で UI に出力します。 +- `abort()` メソッドは、ストリームが中断された場合にコンソールにエラーを出力するだけです。 + +### 書き込み + +実際にストリームにコンテンツを書き込むには、次のように `sendMessage()` 関数を呼び出して、書き込むメッセージと書き込み先のストリームを渡します。 + +```js +sendMessage("Hello, world.", writableStream); +``` + +`sendMessage()` の定義は次のようになります。 + +```js +function sendMessage(message, writableStream) { + // defaultWriter は WritableStreamDefaultWriter 型です + const defaultWriter = writableStream.getWriter(); + const encoder = new TextEncoder(); + const encoded = encoder.encode(message, { stream: true }); + encoded.forEach((chunk) => { + defaultWriter.ready + .then(() => { + return defaultWriter.write(chunk); + }) + .then(() => { + console.log("Chunk written to sink."); + }) + .catch((err) => { + console.log("Chunk error:", err); + }); + }); + // ライターを閉じる前にすべてのチャンクが確実に + // 書き込まれるように、ready を再度呼び出します。 + defaultWriter.ready + .then(() => { + defaultWriter.close(); + }) + .then(() => { + console.log("All chunks written"); + }) + .catch((err) => { + console.log("Stream error:", err); + }); +} +``` + +したがって、ここでは、{{domxref("WritableStream.getWriter()")}} を使用してストリームにチャンクを書き込むライターを作成します。 これにより、{{domxref("WritableStreamDefaultWriter")}} インスタンスが作成されます。 + +また、関連するコンストラクターを使用して新しい {{domxref("TextEncoder")}} インスタンスを作成し、メッセージをチャンクにエンコードしてストリームに入れます。 + +エンコードされたチャンクを使用して、結果の配列で {{jsxref("Array/forEach")}} を呼び出します。 このブロック内で、{{domxref("WritableStreamDefaultWriter.ready")}} を使用して、ライターに別のチャンクを書き込む準備ができているかどうかを確認します。 `ready` は、この場合に満たされるプロミスを返します。 その中で、{{domxref("WritableStreamDefaultWriter.write()")}} を呼び出して、実際にストリームにチャンクを書き込みます。 これにより、前述のように、`WritableStream()` コンストラクター内で指定された `write()` メソッドもトリガーされます。 + +チャンクがすべて書き込まれた後、最後のチャンクの書き込みが完了し、すべての作業が完了したことを確認するために、もう一度 `ready` のチェックを実行します。この `ready` のチェックが完了すると、{{domxref("WritableStreamDefaultWriter.close()")}} を呼び出してストリームを閉じます。 これにより、前述のように、`WritableStream()` コンストラクター内で指定された `close()` メソッドもトリガーされます。 + +### コントローラー + +`WritableStream()` 構文の骨組みを学習するときに気付くように、`start()`、`write()`、および `close()` メソッドには、オプションで `controller` パラメーターを渡すことができます。 これには、{{domxref("WritableStreamDefaultController")}} インターフェイスのインスタンスが含まれます。 これは、開発者が必要に応じてストリームをさらに制御するために使用できます。 + +現在、このインターフェイスで使用できるメソッドは {{domxref("WritableStreamDefaultController.error()")}} のみです。 このメソッドを呼び出すと、ストリームとの今後の相互作用でエラーが発生します。 これは、アプリの別の部分がうまくいかず、がらくたがストリームに静かに書き込まれる (または同様に悪い)危険を冒すのではなく、システム全体がきれいに失敗するようにエラーをストリームに伝播したい場合に便利です。 + +### 終了および中止 + +上記のように、書き込みが終了すると `close()` メソッドを呼び出し、`WritableStream()` コンストラクター内で指定された `close()` メソッドをトリガーします。 + +{{domxref("WritableStreamDefaultWriter.abort()")}} を呼び出してストリームを中止することもできます。 + +違いは、`close()` を呼び出すと、ストリームが閉じられる前に、以前にキューに入れられたチャンクが書き込まれ、終了することです。 + +`abort()` を呼び出すと、以前にキューに入れられたチャンクはすぐに破棄され、ストリームはエラー状態に移行します。 また、これにより、`WritableStream()` コンストラクターで指定された `abort()` メソッドが呼び出されます。 diff --git a/files/ja/web/api/stylesheet/disabled/index.html b/files/ja/web/api/stylesheet/disabled/index.html deleted file mode 100644 index f3f644320dc758..00000000000000 --- a/files/ja/web/api/stylesheet/disabled/index.html +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: StyleSheet.disabled -slug: Web/API/StyleSheet/disabled -tags: - - DOM - - Gecko - - Gecko DOM Reference - - StyleSheet -translation_of: Web/API/StyleSheet/disabled ---- -
- {{ApiRef}}
-

概要

-

このプロパティは、そのスタイルシートが無効になっているかどうかを示す真偽値を返します。

-

構文

-
bool = stylesheet.disabled;
-
-

-
var myStyleSheet = document.styleSheets[0];
-
-if (myStyleSheet.disabled) {
- // スタイルシートが無効の場合の処理をここに記述
- // インラインスタイルの適用など…
-}
-
-

仕様書

- diff --git a/files/ja/web/api/stylesheet/disabled/index.md b/files/ja/web/api/stylesheet/disabled/index.md new file mode 100644 index 00000000000000..6a821054ea6af5 --- /dev/null +++ b/files/ja/web/api/stylesheet/disabled/index.md @@ -0,0 +1,34 @@ +--- +title: StyleSheet.disabled +slug: Web/API/StyleSheet/disabled +tags: + - DOM + - Gecko + - Gecko DOM Reference + - StyleSheet +translation_of: Web/API/StyleSheet/disabled +--- +{{ApiRef}} + +## 概要 + +このプロパティは、そのスタイルシートが無効になっているかどうかを示す真偽値を返します。 + +## 構文 + + bool = stylesheet.disabled; + +## 例 + +```js +var myStyleSheet = document.styleSheets[0]; + +if (myStyleSheet.disabled) { + // スタイルシートが無効の場合の処理をここに記述 + // インラインスタイルの適用など… +} +``` + +## 仕様書 + +- {{spec("http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/stylesheets.html#StyleSheets-StyleSheet-disabled", "DOM 2 Style - disabled", "REC")}} diff --git a/files/ja/web/api/stylesheet/media/index.html b/files/ja/web/api/stylesheet/media/index.html deleted file mode 100644 index 6c3de44d29d499..00000000000000 --- a/files/ja/web/api/stylesheet/media/index.html +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: StyleSheet.media -slug: Web/API/StyleSheet/media -tags: - - API - - CSSOM - - Media - - StyleSheet - - プロパティ -translation_of: Web/API/StyleSheet/media ---- -
{{APIRef("CSSOM")}}
- -

StyleSheet.media は、スタイル情報の対象として想定するメディアを指定します。これは読み取り専用で配列風の MediaList オブジェクトであり、 deleteMedium() で削除したり appendMedium() で追加したりすることができます。

- -

- -
<!doctype html>
-<html>
-<head>
-<link rel="stylesheet" href="document.css" type="text/css" media="screen" />
-<style rel="stylesheet" type="text/css" media="screen, print">
-body  { background-color: snow; }
-</style>
-</head>
-<body>
-
-<script>
-for (var iSheetIndex = 0; iSheetIndex < document.styleSheets.length; iSheetIndex++)
- {
-  console.log('document.styleSheets[' + String(iSheetIndex) + '].media: ' +
-   JSON.stringify(document.styleSheets[iSheetIndex].media));
-  if (iSheetIndex === 0)
-    document.styleSheets[iSheetIndex].media.appendMedium('handheld');
-  if (iSheetIndex === 1)
-    document.styleSheets[iSheetIndex].media.deleteMedium('print');
-  console.log('document.styleSheets[' + String(iSheetIndex) + '].media: ' +
-   JSON.stringify(document.styleSheets[iSheetIndex].media));
- }
-/*
-will log:
-document.styleSheets[0].media: {"0":"screen"}
-document.styleSheets[0].media: {"0":"screen","1":"handheld"}
-document.styleSheets[1].media: {"0":"screen","1":"print"}
-document.styleSheets[1].media: {"0":"screen"}
-*/
-</script>
-
-</body>
-</html>
-
- -

仕様書

- -

DOM Level 2 Styles - STYLESHEET

- -

W3C: Document Object Model Style Sheets - MediaList

diff --git a/files/ja/web/api/stylesheet/media/index.md b/files/ja/web/api/stylesheet/media/index.md new file mode 100644 index 00000000000000..671e11f5dd0077 --- /dev/null +++ b/files/ja/web/api/stylesheet/media/index.md @@ -0,0 +1,56 @@ +--- +title: StyleSheet.media +slug: Web/API/StyleSheet/media +tags: + - API + - CSSOM + - Media + - StyleSheet + - プロパティ +translation_of: Web/API/StyleSheet/media +--- +{{APIRef("CSSOM")}} + +**StyleSheet.media** は、スタイル情報の対象として想定するメディアを指定します。これは読み取り専用で配列風の `MediaList` オブジェクトであり、 `deleteMedium()` で削除したり `appendMedium()` で追加したりすることができます。 + +## 例 + + + + + + + + + + + + + + +## 仕様書 + +DOM Level 2 Styles - STYLESHEET + +[W3C: Document Object Model Style Sheets - MediaList](https://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html#StyleSheets-MediaList) diff --git a/files/ja/web/api/stylesheet/ownernode/index.html b/files/ja/web/api/stylesheet/ownernode/index.html deleted file mode 100644 index a25e6647493116..00000000000000 --- a/files/ja/web/api/stylesheet/ownernode/index.html +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: StyleSheet.ownerNode -slug: Web/API/StyleSheet/ownerNode -tags: - - API - - CSSOM - - Property - - Reference -translation_of: Web/API/StyleSheet/ownerNode ---- -
{{APIRef("CSSOM")}}
- -

概要

- -

ownerNode は、このスタイルシートを document と関連付けているノードを返します。

- -

構文

- -
objRef = stylesheet.ownerNode
-
- -

- -
<html>
- <head>
-  <link rel="StyleSheet" href="example.css" type="text/css" />
-  <script>
-   function stilo() {
-    alert(document.styleSheets[0].ownerNode);
-   }
-  </script>
- </head>
- <body>
-   <button onclick="stilo()">ss</button>
- </body>
-</html>
-// displays "object HTMLLinkElement"
-
- -

補記

- -

HTML の場合、ownerNode は、相当する {{HTMLElement("link")}} 要素または {{HTMLElement("style")}} 要素になるでしょう。XML の場合、リンク処理命令になるでしょう。他のスタイルシートに含まれるスタイルシートの場合、この属性の値は NULL になります。

- -

仕様書

- -

DOM Level 2 Styles - STYLESHEET

diff --git a/files/ja/web/api/stylesheet/ownernode/index.md b/files/ja/web/api/stylesheet/ownernode/index.md new file mode 100644 index 00000000000000..52c67d175994f7 --- /dev/null +++ b/files/ja/web/api/stylesheet/ownernode/index.md @@ -0,0 +1,44 @@ +--- +title: StyleSheet.ownerNode +slug: Web/API/StyleSheet/ownerNode +tags: + - API + - CSSOM + - Property + - Reference +translation_of: Web/API/StyleSheet/ownerNode +--- +{{APIRef("CSSOM")}} + +## 概要 + +**ownerNode** は、このスタイルシートを document と関連付けているノードを返します。 + +## 構文 + + objRef = stylesheet.ownerNode + +## 例 + + + + + + + + + + + // displays "object HTMLLinkElement" + +## 補記 + +HTML の場合、**ownerNode** は、相当する {{HTMLElement("link")}} 要素または {{HTMLElement("style")}} 要素になるでしょう。XML の場合、リンク処理命令になるでしょう。他のスタイルシートに含まれるスタイルシートの場合、この属性の値は `NULL` になります。 + +## 仕様書 + +DOM Level 2 Styles - STYLESHEET diff --git a/files/ja/web/api/stylesheet/parentstylesheet/index.html b/files/ja/web/api/stylesheet/parentstylesheet/index.html deleted file mode 100644 index bef8ca3b24d95e..00000000000000 --- a/files/ja/web/api/stylesheet/parentstylesheet/index.html +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: StyleSheet.parentStyleSheet -slug: Web/API/StyleSheet/parentStyleSheet -tags: - - DOM - - Gecko - - Gecko DOM Reference -translation_of: Web/API/StyleSheet/parentStyleSheet ---- -
- {{ApiRef}}
-

概要

-

対象のスタイルシートを含む親スタイルシートが存在する場合は、それを返します。

-

構文

-
parentStyleSheetObj = stylesheet.parentStyleSheet
-
-

注記

-

対象スタイルシートがトップレベルのスタイルシートの場合、または対象スタイルシートがインクルードをサポートしていない場合、戻り値は null となります。

-

- -
var stylesheet = document.styleSheets[0]; // 文書中の最初のスタイルシート
-
-
-// 親スタイルシートが存在する場合はそれを、
-// 無ければ自身への参照を変数 sheet に代入しています。
-if (stylesheet.parentStyleSheet) {
-  sheet = stylesheet.parentStyleSheet;
-} else {
-  sheet = stylesheet;
-}
-

仕様書

- diff --git a/files/ja/web/api/stylesheet/parentstylesheet/index.md b/files/ja/web/api/stylesheet/parentstylesheet/index.md new file mode 100644 index 00000000000000..156edb48f36026 --- /dev/null +++ b/files/ja/web/api/stylesheet/parentstylesheet/index.md @@ -0,0 +1,42 @@ +--- +title: StyleSheet.parentStyleSheet +slug: Web/API/StyleSheet/parentStyleSheet +tags: + - DOM + - Gecko + - Gecko DOM Reference +translation_of: Web/API/StyleSheet/parentStyleSheet +--- +{{ApiRef}} + +## 概要 + +対象のスタイルシートを含む親スタイルシートが存在する場合は、それを返します。 + +## 構文 + + parentStyleSheetObj = stylesheet.parentStyleSheet + +## 注記 + +対象スタイルシートがトップレベルのスタイルシートの場合、または対象スタイルシートがインクルードをサポートしていない場合、戻り値は `null` となります。 + +## 例 + +```js +var stylesheet = document.styleSheets[0]; // 文書中の最初のスタイルシート + + +// 親スタイルシートが存在する場合はそれを、 +// 無ければ自身への参照を変数 sheet に代入しています。 +if (stylesheet.parentStyleSheet) { + sheet = stylesheet.parentStyleSheet; +} else { + sheet = stylesheet; +} +``` + +## 仕様書 + +- [parentStyleSheet](http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/stylesheets.html#StyleSheets-StyleSheet-parentStyleSheet) +- [CSS Object Model (CSSOM)](http://dev.w3.org/csswg/cssom/#widl-StyleSheet-parentStyleSheet "CSS Object Model (CSSOM)") diff --git a/files/ja/web/api/stylesheet/title/index.html b/files/ja/web/api/stylesheet/title/index.html deleted file mode 100644 index 6d6ba404e74cd0..00000000000000 --- a/files/ja/web/api/stylesheet/title/index.html +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: StyleSheet.title -slug: Web/API/StyleSheet/title -tags: - - DOM - - Gecko - - Gecko DOM Reference -translation_of: Web/API/StyleSheet/title ---- -
- {{ApiRef}}
-

概要

- -

title は、現在のスタイルシートのタイトルを返します。

-

注記

- -

タイトルは、多くの場合 {{domxref("StyleSheet/OwnerNode", "ownerNode")}} で指定されています。

-

仕様書

- diff --git a/files/ja/web/api/stylesheet/title/index.md b/files/ja/web/api/stylesheet/title/index.md new file mode 100644 index 00000000000000..23d94535f842d6 --- /dev/null +++ b/files/ja/web/api/stylesheet/title/index.md @@ -0,0 +1,22 @@ +--- +title: StyleSheet.title +slug: Web/API/StyleSheet/title +tags: + - DOM + - Gecko + - Gecko DOM Reference +translation_of: Web/API/StyleSheet/title +--- +{{ApiRef}} + +## 概要 + +`title` は、現在のスタイルシートのタイトルを返します。 + +## 注記 + +タイトルは、多くの場合 {{domxref("StyleSheet/OwnerNode", "ownerNode")}} で指定されています。 + +## 仕様書 + +- [title](http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/stylesheets.html#StyleSheets-StyleSheet-title) diff --git a/files/ja/web/api/stylesheet/type/index.html b/files/ja/web/api/stylesheet/type/index.html deleted file mode 100644 index 587d29dbbc5b8d..00000000000000 --- a/files/ja/web/api/stylesheet/type/index.html +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: StyleSheet.type -slug: Web/API/StyleSheet/type -tags: - - DOM - - Gecko - - Gecko DOM Reference -translation_of: Web/API/StyleSheet/type ---- -
- {{ApiRef}}
-

概要

-

そのスタイルシートの type 属性の値を取得 / 設定します。

-

構文

-
string = stylesheet.type;
-
-

-
var ss = document.styleSheets[0]; // 文書中の最初のスタイルシートを参照
-
-ss.type = "text/css"; // 設定
-alert( ss.type ); // 取得
-
-

仕様書

- diff --git a/files/ja/web/api/stylesheet/type/index.md b/files/ja/web/api/stylesheet/type/index.md new file mode 100644 index 00000000000000..0e4c57a7bce7e4 --- /dev/null +++ b/files/ja/web/api/stylesheet/type/index.md @@ -0,0 +1,31 @@ +--- +title: StyleSheet.type +slug: Web/API/StyleSheet/type +tags: + - DOM + - Gecko + - Gecko DOM Reference +translation_of: Web/API/StyleSheet/type +--- +{{ApiRef}} + +## 概要 + +そのスタイルシートの `type` 属性の値を取得 / 設定します。 + +## 構文 + + string = stylesheet.type; + +## 例 + +```js +var ss = document.styleSheets[0]; // 文書中の最初のスタイルシートを参照 + +ss.type = "text/css"; // 設定 +alert( ss.type ); // 取得 +``` + +## 仕様書 + +- [type](http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/stylesheets.html#StyleSheets-StyleSheet-type) diff --git a/files/ja/web/api/stylesheetlist/index.html b/files/ja/web/api/stylesheetlist/index.html deleted file mode 100644 index 715bf6d0a1f25e..00000000000000 --- a/files/ja/web/api/stylesheetlist/index.html +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: StyleSheetList -slug: Web/API/StyleSheetList -tags: - - API - - CSSOM - - NeedsContent - - NeedsUpdate -translation_of: Web/API/StyleSheetList ---- -
{{APIRef("CSSOM")}}
- -

StyleSheetList インターフェイスは {{domxref("StyleSheet")}} のリストを表します。

- -

これは配列風のオブジェクトですが、 {{jsxref("Array")}} のメソッドを適用しての反復処理はできません。しかし標準の {{jsxref("Statements/for", "for")}} ループと添字による反復処理、もしくは {{jsxref("Array")}} への変換ができます。

- -

- -

for ループを使用して document の styleSheet オブジェクトを取得

- -
for (let i = 0; i < document.styleSheets.length; i++) {
-  let styleSheet = document.styleSheets[i];
-}
- -

Array のメソッドを適用してすべての CSS ルールを取得

- -
const allCSS = [...document.styleSheets]
-  .map(styleSheet => {
-    try {
-      return [...styleSheet.cssRules]
-        .map(rule => rule.cssText)
-        .join('');
-    } catch (e) {
-      console.log('Access to stylesheet %s is denied. Ignoring...', styleSheet.href);
-    }
-  })
-  .filter(Boolean)
-  .join('\n');
- -

仕様書

- - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName("CSSOM", "#the-stylesheetlist-interface", 'CSSStyleSheetList')}}{{Spec2("CSSOM")}}
- -

ブラウザーの互換性

- -

{{Compat("api.StyleSheetList")}}

diff --git a/files/ja/web/api/stylesheetlist/index.md b/files/ja/web/api/stylesheetlist/index.md new file mode 100644 index 00000000000000..3b20d495d8b575 --- /dev/null +++ b/files/ja/web/api/stylesheetlist/index.md @@ -0,0 +1,50 @@ +--- +title: StyleSheetList +slug: Web/API/StyleSheetList +tags: + - API + - CSSOM + - NeedsContent + - NeedsUpdate +translation_of: Web/API/StyleSheetList +--- +{{APIRef("CSSOM")}} + +`StyleSheetList` インターフェイスは {{domxref("StyleSheet")}} のリストを表します。 + +これは配列風のオブジェクトですが、 {{jsxref("Array")}} のメソッドを適用しての反復処理はできません。しかし標準の {{jsxref("Statements/for", "for")}} ループと添字による反復処理、もしくは {{jsxref("Array")}} への変換ができます。 + +## 例 + +### for ループを使用して document の [styleSheet](/ja/docs/Web/API/CSSStyleSheet) オブジェクトを取得 + +```js +for (let i = 0; i < document.styleSheets.length; i++) { + let styleSheet = document.styleSheets[i]; +} +``` + +### Array のメソッドを適用してすべての CSS ルールを取得 + + const allCSS = [...document.styleSheets] + .map(styleSheet => { + try { + return [...styleSheet.cssRules] + .map(rule => rule.cssText) + .join(''); + } catch (e) { + console.log('Access to stylesheet %s is denied. Ignoring...', styleSheet.href); + } + }) + .filter(Boolean) + .join('\n'); + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| ---------------------------------------------------------------------------------------------------- | ------------------------ | ---- | +| {{SpecName("CSSOM", "#the-stylesheetlist-interface", 'CSSStyleSheetList')}} | {{Spec2("CSSOM")}} | | + +## ブラウザーの互換性 + +{{Compat("api.StyleSheetList")}} diff --git a/files/ja/web/api/subtlecrypto/digest/index.html b/files/ja/web/api/subtlecrypto/digest/index.html deleted file mode 100644 index 87a91bf34645d5..00000000000000 --- a/files/ja/web/api/subtlecrypto/digest/index.html +++ /dev/null @@ -1,143 +0,0 @@ ---- -title: SubtleCrypto.digest() -slug: Web/API/SubtleCrypto/digest -tags: - - API - - Method - - Reference - - SubtleCrypto - - WebCrypto API - - digest - - メソッド -translation_of: Web/API/SubtleCrypto/digest ---- -

{{APIRef("Web Crypto API")}}{{SecureContext_header}}

- -

{{domxref("SubtleCrypto")}} インターフェースの digest() メソッドは、指定されたデータの {{Glossary("digest")}} を返します。ダイジェストとは、可変長の入力に由来する固定長の短い値です。暗号的ダイジェスト値は耐衝突性を示すため、同じダイジェスト値を持つ2つの異なる入力を見つけるのは非常に困難です。

- -

引数として、使用するダイジェストアルゴリズムの識別子とダイジェスト値の元となるデータを受け取ります。ダイジェスト値で解決される {{jsxref("Promise")}} を返します。

- -

構文

- -
const digest = crypto.subtle.digest(algorithm, data);
-
- -

引数

- - - -

返値

- - - -

対応しているアルゴリズム

- -

ダイジェストアルゴリズムは 暗号ハッシュ関数 とも呼ばれ、任意の大きなデータブロックを固定サイズの出力 (通常は入力よりもはるかに短い出力) に変換します。暗号化にはさまざまな用途があります。

- -

SHA-1

- -

このアルゴリズムは FIPS 180-4, section 6.1 で定義されており、160 bit 長の出力を生成します。

- -
-

警告: このアルゴリズムは現在脆弱であると見なされているため、暗号化アプリケーションには使用しないでください。

-
- -

SHA-256

- -

このアルゴリズムは FIPS 180-4, section 6.2 で定義されており、256 bit 長の出力を生成します。

- -

SHA-384

- -

このアルゴリズムは FIPS 180-4, section 6.5 で定義されており、384 bit 長の出力を生成します。

- -

SHA-512

- -

このアルゴリズムは FIPS 180-4, section 6.4 で定義されており、512 bit 長の出力を生成します。

- -
-

ヒント: キー付きハッシュメッセージ認証コード (HMAC), の作成方法をここで探している場合は、代わりに SubtleCrypto.sign() を使用する必要があります。

-
- -

- -

基本的な例

- -

この例では、メッセージをエンコードし、 SHA-256 ダイジェスト値を計算して、ダイジェスト長を記録します:

- -
const text = 'An obscure body in the S-K System, your majesty. The inhabitants refer to it as the planet Earth.';
-
-async function digestMessage(message) {
-  const encoder = new TextEncoder();
-  const data = encoder.encode(message);
-  const hash = await crypto.subtle.digest('SHA-256', data);
-  return hash;
-}
-
-const digestBuffer = await digestMessage(text);
-console.log(digestBuffer.byteLength);
-
- -

ダイジェスト値を16進文字列に変換する

- -

ダイジェストはArrayBufferとして返されますが、比較および表示のために、ダイジェスト値は多くの場合16進文字列として表されます。 この例では、ダイジェストを計算し、ArrayBufferを16進文字列に変換します:

- -
const text = 'An obscure body in the S-K System, your majesty. The inhabitants refer to it as the planet Earth.';
-
-async function digestMessage(message) {
-  const msgUint8 = new TextEncoder().encode(message);                           // encode as (utf-8) Uint8Array
-  const hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8);           // hash the message
-  const hashArray = Array.from(new Uint8Array(hashBuffer));                     // convert buffer to byte array
-  const hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join(''); // convert bytes to hex string
-  return hashHex;
-}
-
-const digestHex = await digestMessage(text);
-console.log(digestHex);
-
- -

仕様書

- - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName('Web Crypto API', '#dfn-SubtleCrypto-method-digest', 'SubtleCrypto.digest()')}}{{Spec2('Web Crypto API')}}初回定義
- -

ブラウザーの互換性

- -

{{Compat("api.SubtleCrypto.digest")}}

- -
-

Chrome 60 では、 TLS 接続出ない場合に crypto.subtle を無効化する機能が追加されました。

-
- -

関連情報

- - diff --git a/files/ja/web/api/subtlecrypto/digest/index.md b/files/ja/web/api/subtlecrypto/digest/index.md new file mode 100644 index 00000000000000..5285bb28057634 --- /dev/null +++ b/files/ja/web/api/subtlecrypto/digest/index.md @@ -0,0 +1,117 @@ +--- +title: SubtleCrypto.digest() +slug: Web/API/SubtleCrypto/digest +tags: + - API + - Method + - Reference + - SubtleCrypto + - WebCrypto API + - digest + - メソッド +translation_of: Web/API/SubtleCrypto/digest +--- +{{APIRef("Web Crypto API")}}{{SecureContext_header}} + +{{domxref("SubtleCrypto")}} インターフェースの **`digest()`** メソッドは、指定されたデータの {{Glossary("digest")}} を返します。ダイジェストとは、可変長の入力に由来する固定長の短い値です。暗号的ダイジェスト値は耐衝突性を示すため、同じダイジェスト値を持つ 2 つの異なる入力を見つけるのは非常に困難です。 + +引数として、使用するダイジェストアルゴリズムの識別子とダイジェスト値の元となるデータを受け取ります。ダイジェスト値で解決される {{jsxref("Promise")}} を返します。 + +## 構文 + + const digest = crypto.subtle.digest(algorithm, data); + +### 引数 + +- `algorithm` は、使用するダイジェストアルゴリズムを定義する {{domxref("DOMString")}} です。サポートされる値は次のとおりです: + + - `SHA-1` (暗号化アプリケーションではこれを使用しないでください) + - `SHA-256` + - `SHA-384` + - `SHA-512` + +- `data` は、ダイジェスト値の元となるデータを含む {{jsxref("ArrayBuffer")}} もしくは {{domxref("ArrayBufferView")}} です。 + +### 返値 + +- `digest` は {{jsxref("Promise")}} であり、ダイジェスト値を含む {{jsxref("ArrayBuffer")}} で解決されます。 + +## 対応しているアルゴリズム + +ダイジェストアルゴリズムは [暗号ハッシュ関数](/ja/docs/Glossary/Cryptographic_hash_function) とも呼ばれ、任意の大きなデータブロックを固定サイズの出力 (通常は入力よりもはるかに短い出力) に変換します。暗号化にはさまざまな用途があります。 + +### SHA-1 + +このアルゴリズムは [FIPS 180-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf), section 6.1 で定義されており、160 bit 長の出力を生成します。 + +> **Warning:** **警告**: このアルゴリズムは現在脆弱であると見なされているため、暗号化アプリケーションには使用しないでください。 + +### SHA-256 + +このアルゴリズムは [FIPS 180-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf), section 6.2 で定義されており、256 bit 長の出力を生成します。 + +### SHA-384 + +このアルゴリズムは [FIPS 180-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf), section 6.5 で定義されており、384 bit 長の出力を生成します。 + +### SHA-512 + +このアルゴリズムは [FIPS 180-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf), section 6.4 で定義されており、512 bit 長の出力を生成します。 + +> **Note:** ヒント: キー付きハッシュメッセージ認証コード ([HMAC](/ja/docs/Glossary/HMAC)), の作成方法をここで探している場合は、代わりに [SubtleCrypto.sign()](/ja/docs/Web/API/SubtleCrypto/sign#HMAC) を使用する必要があります。 + +## 例 + +### 基本的な例 + +この例では、メッセージをエンコードし、 SHA-256 ダイジェスト値を計算して、ダイジェスト長を記録します: + +```js +const text = 'An obscure body in the S-K System, your majesty. The inhabitants refer to it as the planet Earth.'; + +async function digestMessage(message) { + const encoder = new TextEncoder(); + const data = encoder.encode(message); + const hash = await crypto.subtle.digest('SHA-256', data); + return hash; +} + +const digestBuffer = await digestMessage(text); +console.log(digestBuffer.byteLength); +``` + +### ダイジェスト値を 16 進文字列に変換する + +ダイジェストは`ArrayBuffer`として返されますが、比較および表示のために、ダイジェスト値は多くの場合 16 進文字列として表されます。 この例では、ダイジェストを計算し、`ArrayBuffer`を 16 進文字列に変換します: + +```js +const text = 'An obscure body in the S-K System, your majesty. The inhabitants refer to it as the planet Earth.'; + +async function digestMessage(message) { + const msgUint8 = new TextEncoder().encode(message); // encode as (utf-8) Uint8Array + const hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8); // hash the message + const hashArray = Array.from(new Uint8Array(hashBuffer)); // convert buffer to byte array + const hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join(''); // convert bytes to hex string + return hashHex; +} + +const digestHex = await digestMessage(text); +console.log(digestHex); +``` + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------ | -------- | +| {{SpecName('Web Crypto API', '#dfn-SubtleCrypto-method-digest', 'SubtleCrypto.digest()')}} | {{Spec2('Web Crypto API')}} | 初回定義 | + +## ブラウザーの互換性 + +{{Compat("api.SubtleCrypto.digest")}} + +> **Note:** Chrome 60 では、 TLS 接続出ない場合に crypto.subtle を無効化する機能が追加されました。 + +## 関連情報 + +- [Chromium secure origins specification](https://www.chromium.org/Home/chromium-security/prefer-secure-origins-for-powerful-new-features) +- [FIPS 180-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf) specifies the SHA family of digest algorithms. diff --git a/files/ja/web/api/subtlecrypto/index.html b/files/ja/web/api/subtlecrypto/index.html deleted file mode 100644 index f313b73907b7a8..00000000000000 --- a/files/ja/web/api/subtlecrypto/index.html +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: SubtleCrypto -slug: Web/API/SubtleCrypto -tags: - - API - - Interface - - Reference - - Web Crypto API -translation_of: Web/API/SubtleCrypto ---- -

{{APIRef("Web Crypto API")}}

- -

SubtleCrypto インターフェイスは、暗号プリミティブのセットを表します。これは、window コンテキスト ({{domxref("Window.crypto")}}) 内で利用可能な {{domxref("Crypto.subtle")}} プロパティを通して利用できます。

- -
-

仕様書より引用 (拙訳): "開発者は、SubtleCrypto インターフェイスを使用する際に、提供される様々なアルゴリズムの設計と実装の両面でセキュリティに関わる問題に注意を払うことが期待されます。生のアルゴリズムは、その使用に必要とされる独自のセキュリティパラメーターとコンポジションを表す多様なプロトコルとアプリケーションの実装において、開発者に最大限の柔軟性を許すために提供されます。"

-
- -

プロパティ

- -

このインターフェイスはどのプロパティも定義または継承しません。

- -

メソッド

- -

このインターフェイスはどのメソッドも継承しません。

- -
-
{{domxref("SubtleCrypto.encrypt()")}}
-
引数に与えられた平文テキストおよびアルゴリズム、鍵に対応する暗号化されたデータの {{jsxref("Promise")}} を返します。
-
{{domxref("SubtleCrypto.decrypt()")}}
-
引数に与えられた暗号化されたテキストおよびアルゴリズム、鍵に対応する平文データの {{jsxref("Promise")}} を返します。
-
{{domxref("SubtleCrypto.sign()")}}
-
引数に与えられたテキストおよびアルゴリズム、鍵に対応する署名の {{jsxref("Promise")}} を返します。
-
{{domxref("SubtleCrypto.verify()")}}
-
引数に与えられた署名が、同じく引数に与えられたテキストおよびアルゴリズム、鍵と一致するかどうかを示す {{jsxref("Boolean")}} 値の {{jsxref("Promise")}} を返します。
-
{{domxref("SubtleCrypto.digest()")}}
-
引数に与えられたアルゴリズムとテキストから生成されたダイジェストの {{jsxref("Promise")}} を返します。
-
{{domxref("SubtleCrypto.generateKey()")}}
-
引数に与えられたアルゴリズム、抽出可能性、使用法と一致する、対称アルゴリズムでは新たに生成された {{domxref("CryptoKey")}} の {{jsxref("Promise")}} を、非対称アルゴリズムでは 2 個の新たに生成された鍵を含む {{domxref("CryptoKeyPair")}} の {{jsxref("Promise")}} を返します。
-
{{domxref("SubtleCrypto.deriveKey()")}}
-
引数に与えられたマスターキーと特定のアルゴリズムによりもたらされる、新たに生成された {{domxref("CryptoKey")}} の {{jsxref("Promise")}} を返します。
-
{{domxref("SubtleCrypto.deriveBits()")}}
-
引数に与えられたマスターキーと特定のアルゴリズムによりもたらされる、疑似乱数ビットの新たに生成されたバッファーの {{jsxref("Promise")}} を返します。
-
{{domxref("SubtleCrypto.importKey()")}}
-
引数に与えられた書式およびアルゴリズム、生の鍵データ、使用法、抽出可能性に対応する {{domxref("CryptoKey")}} の {{jsxref("Promise")}} を返します。
-
{{domxref("SubtleCrypto.exportKey()")}}
-
要求された書式内の鍵を含むバッファーの {{jsxref("Promise")}} を返します。
-
{{domxref("SubtleCrypto.wrapKey()")}}
-
安全でない環境での使用法 (transfer, storage) について、ラップされた対称鍵の {{jsxref("Promise")}} を返します。返されるラップされたバッファーは、引数に与えられた書式内にあり、与えられたアルゴリズムで与えられたラッピング鍵によりラップされた鍵を含みます。
-
{{domxref("SubtleCrypto.unwrapKey()")}}
-
引数に与えられたラップされた鍵に対応する {{domxref("CryptoKey")}} の {{jsxref("Promise")}} を返します。
-
- -

仕様

- - - - - - - - - - - - - - -
仕様書策定状況備考
{{ SpecName('Web Crypto API', '#subtlecrypto-interface', 'SubtleCrypto') }}{{ Spec2('Web Crypto API') }}初期定義。
- -

ブラウザーの実装状況

- - - -

{{Compat("api.SubtleCrypto")}}

- -

関連情報

- - diff --git a/files/ja/web/api/subtlecrypto/index.md b/files/ja/web/api/subtlecrypto/index.md new file mode 100644 index 00000000000000..8dd963cde5afa3 --- /dev/null +++ b/files/ja/web/api/subtlecrypto/index.md @@ -0,0 +1,62 @@ +--- +title: SubtleCrypto +slug: Web/API/SubtleCrypto +tags: + - API + - Interface + - Reference + - Web Crypto API +translation_of: Web/API/SubtleCrypto +--- +{{APIRef("Web Crypto API")}} + +**`SubtleCrypto`** インターフェイスは、暗号プリミティブのセットを表します。これは、window コンテキスト ({{domxref("Window.crypto")}}) 内で利用可能な {{domxref("Crypto.subtle")}} プロパティを通して利用できます。 + +> **Warning:** 仕様書より引用 (拙訳): "開発者は、SubtleCrypto インターフェイスを使用する際に、提供される様々なアルゴリズムの設計と実装の両面でセキュリティに関わる問題に注意を払うことが期待されます。生のアルゴリズムは、その使用に必要とされる独自のセキュリティパラメーターとコンポジションを表す多様なプロトコルとアプリケーションの実装において、開発者に最大限の柔軟性を許すために提供されます。" + +## プロパティ + +_このインターフェイスはどのプロパティも定義または継承しません。_ + +## メソッド + +このインターフェイスはどのメソッドも継承しません。 + +- {{domxref("SubtleCrypto.encrypt()")}} + - : 引数に与えられた平文テキストおよびアルゴリズム、鍵に対応する暗号化されたデータの {{jsxref("Promise")}} を返します。 +- {{domxref("SubtleCrypto.decrypt()")}} + - : 引数に与えられた暗号化されたテキストおよびアルゴリズム、鍵に対応する平文データの {{jsxref("Promise")}} を返します。 +- {{domxref("SubtleCrypto.sign()")}} + - : 引数に与えられたテキストおよびアルゴリズム、鍵に対応する署名の {{jsxref("Promise")}} を返します。 +- {{domxref("SubtleCrypto.verify()")}} + - : 引数に与えられた署名が、同じく引数に与えられたテキストおよびアルゴリズム、鍵と一致するかどうかを示す {{jsxref("Boolean")}} 値の {{jsxref("Promise")}} を返します。 +- {{domxref("SubtleCrypto.digest()")}} + - : 引数に与えられたアルゴリズムとテキストから生成されたダイジェストの {{jsxref("Promise")}} を返します。 +- {{domxref("SubtleCrypto.generateKey()")}} + - : 引数に与えられたアルゴリズム、抽出可能性、使用法と一致する、対称アルゴリズムでは新たに生成された {{domxref("CryptoKey")}} の {{jsxref("Promise")}} を、非対称アルゴリズムでは 2 個の新たに生成された鍵を含む {{domxref("CryptoKeyPair")}} の {{jsxref("Promise")}} を返します。 +- {{domxref("SubtleCrypto.deriveKey()")}} + - : 引数に与えられたマスターキーと特定のアルゴリズムによりもたらされる、新たに生成された {{domxref("CryptoKey")}} の {{jsxref("Promise")}} を返します。 +- {{domxref("SubtleCrypto.deriveBits()")}} + - : 引数に与えられたマスターキーと特定のアルゴリズムによりもたらされる、疑似乱数ビットの新たに生成されたバッファーの {{jsxref("Promise")}} を返します。 +- {{domxref("SubtleCrypto.importKey()")}} + - : 引数に与えられた書式およびアルゴリズム、生の鍵データ、使用法、抽出可能性に対応する {{domxref("CryptoKey")}} の {{jsxref("Promise")}} を返します。 +- {{domxref("SubtleCrypto.exportKey()")}} + - : 要求された書式内の鍵を含むバッファーの {{jsxref("Promise")}} を返します。 +- {{domxref("SubtleCrypto.wrapKey()")}} + - : 安全でない環境での使用法 (transfer, storage) について、ラップされた対称鍵の {{jsxref("Promise")}} を返します。返されるラップされたバッファーは、引数に与えられた書式内にあり、与えられたアルゴリズムで与えられたラッピング鍵によりラップされた鍵を含みます。 +- {{domxref("SubtleCrypto.unwrapKey()")}} + - : 引数に与えられたラップされた鍵に対応する {{domxref("CryptoKey")}} の {{jsxref("Promise")}} を返します。 + +## 仕様 + +| 仕様書 | 策定状況 | 備考 | +| ---------------------------------------------------------------------------------------------------- | ---------------------------------------- | ---------- | +| {{ SpecName('Web Crypto API', '#subtlecrypto-interface', 'SubtleCrypto') }} | {{ Spec2('Web Crypto API') }} | 初期定義。 | + +## ブラウザーの実装状況 + +{{Compat("api.SubtleCrypto")}} + +## 関連情報 + +- {{domxref("Crypto")}} および {{domxref("Crypto.subtle")}}。 diff --git a/files/ja/web/api/svgelement/index.html b/files/ja/web/api/svgelement/index.html deleted file mode 100644 index 65e7f6b6e7d3ae..00000000000000 --- a/files/ja/web/api/svgelement/index.html +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: SVGElement -slug: Web/API/SVGElement -tags: - - API - - Interface - - Reference - - SVG - - SVG DOM - - SVGElement -translation_of: Web/API/SVGElement ---- -
{{APIRef("SVG")}}
- -

SVG 言語における要素に直接対応する SVG DOM インタフェースのすべては、SVGElement インタフェースから派生しています。

- -

{{InheritanceDiagram}}

- -

属性

- -

Also inherits properties from: {{DOMxRef("Element")}}, {{DOMxRef("HTMLOrForeignElement")}}

- -
-
{{domxref("SVGElement.dataset")}}{{ ReadOnlyInline }}
-
要素に付与されたカスタム・データ属性に対応する名前つきデータ属性の、キーと値の対のリストを与える、{{domxref("DOMStringMap")}} オブジェクトです。{{SVGAttr("data-*")}} の形の属性を使って、これらの対を SVG で定義することもでき、ここで * は、その対のキーの名前です。これは、HTML の {{domxref("HTMLElement.dataset")}} 属性および HTML の {{htmlattrxref("data-*")}} グローバル属性とちょうど同様に、うまく機能します。
-
{{DOMxRef("SVGElement.className")}} {{Deprecated_Inline}}{{ReadOnlyInline}}
-
An {{DOMxRef("SVGAnimatedString")}} that reflects the value of the {{SVGAttr("class")}} attribute on the given element, or the empty string if class is not present. This attribute is deprecated and may be removed in a future version of this specification. Authors are advised to use {{DOMxRef("Element.classList")}} instead.
-
{{domxref("SVGElement.ownerSVGElement")}}{{ ReadOnlyInline }}
-
直近の先祖の {{SVGElement("svg")}} 要素を参照する {{domxref("SVGSVGElement")}} です。もし、与えられた要素が最も外側の <svg> 要素であれば、null です。
-
{{domxref("SVGElement.viewportElement")}}{{ ReadOnlyInline }}
-
現在のビューポートを確立した {{domxref("SVGElement")}} です。多くの場合は、直近の先祖の {{SVGElement("svg")}} 要素です。もし、与えられた要素が最も外側の <svg> 要素であれば、null です。
-
- -

メソッド

- -

SVGElement インタフェースは、追加のメソッドを何も提供しませんが、親から、すなわち {{domxref("Element")}}, {{DOMxRef("HTMLOrForeignElement")}} から、メソッドを継承しています。

- -

イベント

- -

Events

- -

Listen to these events using addEventListener() or by assigning an event listener to the equivalent on... handler property defined on {{DOMxRef("GlobalEventHandlers")}} or {{DOMxRef("WindowEventHandlers")}}.

- -
-
abort
-
Fired when page loading is stopped before an SVG element has been allowed to load completely.
- Also available via the onabort property.
-
error
-
Fired when an SVG element does not load properly or when an error occurs during script execution.
- Also available via the onerror property.
-
load
-
Fires on an SVGElement when it is loaded in the browser.
- Also available via the onload property.
-
resize
-
Fired when an SVG document is being resized.
- Also available via the onresize property.
-
scroll
-
Fired when an SVG document view is being shifted along the X and/or Y axes.
- Also available via the onscroll property.
-
unload
-
Fired when the DOM implementation removes an SVG document from a window or frame.
- Also available via the onunload property.
-
- -

仕様

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName("SVG2", "types.html#InterfaceSVGElement", "SVGElement")}}{{Spec2("SVG2")}}Adds the {{domxref("SVGElement.dataset", "dataset")}} property.
{{SpecName("SVG1.1", "types.html#InterfaceSVGElement", "SVGElement")}}{{Spec2("SVG1.1")}}Initial definition
- -

ブラウザ互換性

- - - -

{{Compat("api.SVGElement")}}

- -

参照

- - diff --git a/files/ja/web/api/svgelement/index.md b/files/ja/web/api/svgelement/index.md new file mode 100644 index 00000000000000..aa703f5acc6d71 --- /dev/null +++ b/files/ja/web/api/svgelement/index.md @@ -0,0 +1,76 @@ +--- +title: SVGElement +slug: Web/API/SVGElement +tags: + - API + - Interface + - Reference + - SVG + - SVG DOM + - SVGElement +translation_of: Web/API/SVGElement +--- +{{APIRef("SVG")}} + +SVG 言語における要素に直接対応する SVG DOM インタフェースのすべては、`SVGElement` インタフェースから派生しています。 + +{{InheritanceDiagram}} + +## 属性 + +_Also inherits properties from: {{DOMxRef("Element")}}, {{DOMxRef("HTMLOrForeignElement")}}_ + +- {{domxref("SVGElement.dataset")}}{{ ReadOnlyInline }} + - : 要素に付与された[カスタム・データ属性](/ja/docs/Web/Guide/HTML/Using_data_attributes)に対応する名前つきデータ属性の、キーと値の対のリストを与える、{{domxref("DOMStringMap")}} オブジェクトです。{{SVGAttr("data-*")}} の形の属性を使って、これらの対を SVG で定義することもでき、ここで `*` は、その対のキーの名前です。これは、HTML の {{domxref("HTMLElement.dataset")}} 属性および HTML の {{htmlattrxref("data-*")}} グローバル属性とちょうど同様に、うまく機能します。 +- {{DOMxRef("SVGElement.className")}} {{Deprecated_Inline}}{{ReadOnlyInline}} + - : An {{DOMxRef("SVGAnimatedString")}} that reflects the value of the {{SVGAttr("class")}} attribute on the given element, or the empty string if `class` is not present. This attribute is deprecated and may be removed in a future version of this specification. Authors are advised to use {{DOMxRef("Element.classList")}} instead. +- {{domxref("SVGElement.ownerSVGElement")}}{{ ReadOnlyInline }} + - : 直近の先祖の {{SVGElement("svg")}} 要素を参照する {{domxref("SVGSVGElement")}} です。もし、与えられた要素が最も外側の `` 要素であれば、`null` です。 +- {{domxref("SVGElement.viewportElement")}}{{ ReadOnlyInline }} + - : 現在のビューポートを確立した {{domxref("SVGElement")}} です。多くの場合は、直近の先祖の {{SVGElement("svg")}} 要素です。もし、与えられた要素が最も外側の `` 要素であれば、`null` です。 + +## メソッド + +*`SVGElement` *インタフェースは、追加のメソッドを何も提供しませんが、親から、すなわち _{{domxref("Element")}},_ _{{DOMxRef("HTMLOrForeignElement")}}_ *から、*メソッドを継承しています。 + +## イベント + +## Events + +Listen to these events using [`addEventListener()`](/ja/docs/Web/API/EventTarget/addEventListener) or by assigning an event listener to the equivalent `on...` handler property defined on {{DOMxRef("GlobalEventHandlers")}} or {{DOMxRef("WindowEventHandlers")}}. + +- [`abort`](/ja/docs/Web/API/SVGElement/abort_event) + - : Fired when page loading is stopped before an SVG element has been allowed to load completely. + Also available via the [`onabort`](/ja/docs/Web/API/GlobalEventHandlers/onabort) property. +- [`error`](/ja/docs/Web/API/SVGElement/error_event) + - : Fired when an SVG element does not load properly or when an error occurs during script execution. + Also available via the [`onerror`](/ja/docs/Web/API/GlobalEventHandlers/onerror) property. +- [`load`](/ja/docs/Web/API/SVGElement/load_event) + - : Fires on an `SVGElement` when it is loaded in the browser. + Also available via the [`onload`](/ja/docs/Web/API/GlobalEventHandlers/onload) property. +- [`resize`](/ja/docs/Web/API/SVGElement/resize_event) + - : Fired when an SVG document is being resized. + Also available via the [`onresize`](/ja/docs/Web/API/GlobalEventHandlers/onresize) property. +- [`scroll`](/ja/docs/Web/API/SVGElement/scroll_event) + - : Fired when an SVG document view is being shifted along the X and/or Y axes. + Also available via the [`onscroll`](/ja/docs/Web/API/GlobalEventHandlers/onscroll) property. +- [`unload`](/ja/docs/Web/API/SVGElement/unload_event) + - : Fired when the DOM implementation removes an SVG document from a window or frame. + Also available via the [`onunload`](/ja/docs/Web/API/WindowEventHandlers/onunload) property. + +## 仕様 + +| Specification | Status | Comment | +| -------------------------------------------------------------------------------------------- | ------------------------ | ------------------------------------------------------------------------------- | +| {{SpecName("SVG2", "types.html#InterfaceSVGElement", "SVGElement")}} | {{Spec2("SVG2")}} | Adds the {{domxref("SVGElement.dataset", "dataset")}} property. | +| {{SpecName("SVG1.1", "types.html#InterfaceSVGElement", "SVGElement")}} | {{Spec2("SVG1.1")}} | Initial definition | + +## ブラウザ互換性 + +{{Compat("api.SVGElement")}} + +## 参照 + +- HTML {{htmlattrxref("data-*")}} attribute +- SVG {{SVGAttr("data-*")}} attribute +- [Using custom data attributes in HTML](/ja/docs/Web/Guide/HTML/Using_data_attributes) diff --git a/files/ja/web/api/svgevent/index.html b/files/ja/web/api/svgevent/index.html deleted file mode 100644 index 6881824bb64464..00000000000000 --- a/files/ja/web/api/svgevent/index.html +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: SVGEvent -slug: Web/API/SVGEvent -tags: - - API - - Reference - - SVG -translation_of: Web/API/SVGEvent ---- -
{{APIRef("SVG")}}
- -

このセクションには、Scalable Vector Graphics (SVG) イベントリファレンスのドキュメントが含まれています。

- -

このセクションにおいて

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
項目説明
-

onabort

-
-

要素が完全に読み込まれる前にページの読み込みが停止したときに発生します。

-
-

onerror

-
-

要素が正しく読み込まれなかったり、スクリプトが正しく実行されなかったりすると発生します。

-
-

onload

-
-

ブラウザが要素とそのすべての子孫を完全に解析したときに発生します。

-
-

onresize

-
-

ドキュメントビューのサイズが変更されているときに発生します。

-
-

onscroll

-
-

ドキュメントビューがx軸、y軸、または両方の軸に沿って移動されているときに発生します。

-
-

onunload

-
-

ドキュメントがウィンドウまたはフレームから削除されたときに発生します。

-
-

onzoom

-
-

ドキュメントのズームレベルまたはcurrentScaleプロパティが変更されたときに発生します。

-
- -

diff --git a/files/ja/web/api/svgevent/index.md b/files/ja/web/api/svgevent/index.md new file mode 100644 index 00000000000000..c60d30ed7ff587 --- /dev/null +++ b/files/ja/web/api/svgevent/index.md @@ -0,0 +1,24 @@ +--- +title: SVGEvent +slug: Web/API/SVGEvent +tags: + - API + - Reference + - SVG +translation_of: Web/API/SVGEvent +--- +{{APIRef("SVG")}} + +このセクションには、Scalable Vector Graphics (SVG) イベントリファレンスのドキュメントが含まれています。 + +## このセクションにおいて + +| 項目 | 説明 | +| ------------ | ---------------------------------------------------------------------------------------- | +| **onabort** | 要素が完全に読み込まれる前にページの読み込みが停止したときに発生します。 | +| **onerror** | 要素が正しく読み込まれなかったり、スクリプトが正しく実行されなかったりすると発生します。 | +| **onload** | ブラウザが要素とそのすべての子孫を完全に解析したときに発生します。 | +| **onresize** | ドキュメントビューのサイズが変更されているときに発生します。 | +| **onscroll** | ドキュメントビューが x 軸、y 軸、または両方の軸に沿って移動されているときに発生します。 | +| **onunload** | ドキュメントがウィンドウまたはフレームから削除されたときに発生します。 | +| **onzoom** | ドキュメントのズームレベルまたは**currentScale**プロパティが変更されたときに発生します。 | diff --git a/files/ja/web/api/svgfontelement/index.html b/files/ja/web/api/svgfontelement/index.html deleted file mode 100644 index 07184c7606380e..00000000000000 --- a/files/ja/web/api/svgfontelement/index.html +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: SVGFontElement -slug: Web/API/SVGFontElement -tags: - - SVG - - SVG DOM -translation_of: Web/API/SVGFontElement ---- -
{{APIRef("SVG")}}{{deprecated_header}}
- -

SVGFontElement インタフェースは、SVG の {{SVGElement("font")}} 要素に対応するインタフェースです。

- -

SVG の DOM 経由での {{SVGElement("font")}} 要素の属性へのオブジェクト指向アクセスは出来ません。

- -

{{InheritanceDiagram(600, 140)}}

- -

プロパティ

- -

SVGFontElement インタフェースは固有のプロパティを持ちませんが、親である {{domxref("SVGElement")}} のプロパティを継承し、また{{domxref("SVGExternalResourcesRequired")}} と {{domxref("SVGStylable")}} からプロパティを実装しています。

- -

メソッド

- -

SVGFontElement インタフェースは固有のメソッドを持ちませんが親である {{domxref("SVGElement")}} のメソッドを継承し、また{{domxref("SVGExternalResourcesRequired")}} と {{domxref("SVGStylable")}} からメソッドを実装しています。

- -

仕様

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName("SVG1.1", "fonts.html#InterfaceSVGFontElement", "SVGFontElement")}}{{Spec2("SVG1.1")}}Initial definition
- -

ブラウザ実装状況

- -
- - -

{{Compat("api.SVGFontElement")}}

-
- -

関連情報

- - diff --git a/files/ja/web/api/svgfontelement/index.md b/files/ja/web/api/svgfontelement/index.md new file mode 100644 index 00000000000000..53c7e8c7954d5d --- /dev/null +++ b/files/ja/web/api/svgfontelement/index.md @@ -0,0 +1,37 @@ +--- +title: SVGFontElement +slug: Web/API/SVGFontElement +tags: + - SVG + - SVG DOM +translation_of: Web/API/SVGFontElement +--- +{{APIRef("SVG")}}{{deprecated_header}} + +`SVGFontElement` インタフェースは、SVG の {{SVGElement("font")}} 要素に対応するインタフェースです。 + +SVG の DOM 経由での {{SVGElement("font")}} 要素の属性へのオブジェクト指向アクセスは出来ません。 + +{{InheritanceDiagram(600, 140)}} + +## プロパティ + +`SVGFontElement` インタフェースは固有のプロパティを持ちませんが、親である {{domxref("SVGElement")}} のプロパティを継承し、また{{domxref("SVGExternalResourcesRequired")}} と {{domxref("SVGStylable")}} からプロパティを実装しています。 + +## メソッド + +`SVGFontElement` インタフェースは固有のメソッドを持ちませんが親である {{domxref("SVGElement")}} のメソッドを継承し、また{{domxref("SVGExternalResourcesRequired")}} と {{domxref("SVGStylable")}} からメソッドを実装しています。 + +## 仕様 + +| Specification | Status | Comment | +| -------------------------------------------------------------------------------------------------------- | ------------------------ | ------------------ | +| {{SpecName("SVG1.1", "fonts.html#InterfaceSVGFontElement", "SVGFontElement")}} | {{Spec2("SVG1.1")}} | Initial definition | + +## ブラウザ実装状況 + +{{Compat("api.SVGFontElement")}} + +## 関連情報 + +- {{SVGElement("font")}} SVG 要素 diff --git a/files/ja/web/api/svggraphicselement/getbbox/index.html b/files/ja/web/api/svggraphicselement/getbbox/index.html deleted file mode 100644 index 68e2885a79d3ae..00000000000000 --- a/files/ja/web/api/svggraphicselement/getbbox/index.html +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: getBBox() -slug: Web/API/SVGGraphicsElement/getBBox -tags: - - API - - Method - - Reference - - SVG - - SVG DOM - - SVGGraphicsElement - - メソッド -translation_of: Web/API/SVGGraphicsElement/getBBox ---- -
{{APIRef}}
- -

SVGGraphicsElement.getBBox() で、オブジェクトが収まる最小の矩形の座標を特定することができます。返される座標は、現在の SVG 空間、すなわち対象の要素に含まれる位置に関する属性すべてを適用した後の空間に従います。

- -

メモ: getBBox は要素がまだレンダリングされていない場合でも、メソッドが呼び出されたときに実際の境界ボックスを返します。また、要素またはその親に適用される変換は無視します。

- -
-

getBBox は {{domxref("Element.getBoundingClientRect()", "getBoundingClientRect()")}} とは異なる値を返します。後者はビューポートからの相対値を返します。

-
- -

構文

- -
let bboxRect = object.getBBox();
- -

返値

- -

返値は {{domxref("SVGRect")}} オブジェクトで、境界ボックスを定義します。この値はその要素や親要素に適用された変形属性を無視したものです。

- -

- -

HTML

- -
<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
-    <g id="group_text_1">
-        <text x="5" y="16" transform="scale(2, 2)">Hello World!</text>
-        <text x="8" y="32" transform="translate(0 20) scale(1.25 1)">Hello World Again!</text>
-    </g>
-    <!-- Shows BBox in green -->
-    <rect id="rect_1" stroke="#00ff00" stroke-width="3" fill="none"> </rect>
-    <!-- Shows BoundingClientRect in red -->
-    <rect id="rect_2" stroke="#ff0000" stroke-width="3" fill="none"></rect>
-</svg>
-
- -

JavaScript

- -
var rectBBox = document.querySelector('#rect_1');
-var rectBoundingClientRect = document.querySelector('#rect_2');
-var groupElement = document.querySelector('#group_text_1');
-
-var bboxGroup = groupElement.getBBox();
-rectBBox.setAttribute('x', bboxGroup.x);
-rectBBox.setAttribute('y', bboxGroup.y);
-rectBBox.setAttribute('width', bboxGroup.width);
-rectBBox.setAttribute('height', bboxGroup.height);
-
-var boundingClientRectGroup = groupElement.getBoundingClientRect();
-rectBoundingClientRect.setAttribute('x', boundingClientRectGroup.x);
-rectBoundingClientRect.setAttribute('y', boundingClientRectGroup.y);
-rectBoundingClientRect.setAttribute('width', boundingClientRectGroup.width);
-rectBoundingClientRect.setAttribute('height', boundingClientRectGroup.height);
- -

仕様書

- - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName('SVG1.1', 'types.html#__svg__SVGLocatable__getBBox', 'getBBox')}}{{Spec2('SVG1.1')}}初回定義 (SVG 要素のみに適用).
- -

関連情報

- - diff --git a/files/ja/web/api/svggraphicselement/getbbox/index.md b/files/ja/web/api/svggraphicselement/getbbox/index.md new file mode 100644 index 00000000000000..4381e97415803a --- /dev/null +++ b/files/ja/web/api/svggraphicselement/getbbox/index.md @@ -0,0 +1,75 @@ +--- +title: getBBox() +slug: Web/API/SVGGraphicsElement/getBBox +tags: + - API + - Method + - Reference + - SVG + - SVG DOM + - SVGGraphicsElement + - メソッド +translation_of: Web/API/SVGGraphicsElement/getBBox +--- +{{APIRef}} + +**`SVGGraphicsElement.getBBox()`** で、オブジェクトが収まる最小の矩形の座標を特定することができます。返される座標は、現在の SVG 空間、すなわち対象の要素に含まれる位置に関する属性すべてを適用した後の空間に従います。 + +メモ: `getBBox` は要素がまだレンダリングされていない場合でも、メソッドが呼び出されたときに実際の境界ボックスを返します。また、要素またはその親に適用される変換は無視します。 + +> **Note:** `getBBox` は {{domxref("Element.getBoundingClientRect()", "getBoundingClientRect()")}} とは異なる値を返します。後者はビューポートからの相対値を返します。 + +## 構文 + + let bboxRect = object.getBBox(); + +### 返値 + +返値は {{domxref("SVGRect")}} オブジェクトで、境界ボックスを定義します。この値はその要素や親要素に適用された変形属性を無視したものです。 + +## 例 + +### HTML + +```html + + + Hello World! + Hello World Again! + + + + + + +``` + +### JavaScript + +```js +var rectBBox = document.querySelector('#rect_1'); +var rectBoundingClientRect = document.querySelector('#rect_2'); +var groupElement = document.querySelector('#group_text_1'); + +var bboxGroup = groupElement.getBBox(); +rectBBox.setAttribute('x', bboxGroup.x); +rectBBox.setAttribute('y', bboxGroup.y); +rectBBox.setAttribute('width', bboxGroup.width); +rectBBox.setAttribute('height', bboxGroup.height); + +var boundingClientRectGroup = groupElement.getBoundingClientRect(); +rectBoundingClientRect.setAttribute('x', boundingClientRectGroup.x); +rectBoundingClientRect.setAttribute('y', boundingClientRectGroup.y); +rectBoundingClientRect.setAttribute('width', boundingClientRectGroup.width); +rectBoundingClientRect.setAttribute('height', boundingClientRectGroup.height); +``` + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| ---------------------------------------------------------------------------------------------------- | ------------------------ | ------------------------------ | +| {{SpecName('SVG1.1', 'types.html#__svg__SVGLocatable__getBBox', 'getBBox')}} | {{Spec2('SVG1.1')}} | 初回定義 (SVG 要素のみに適用). | + +## 関連情報 + +- [getBBox in SVG Primer](https://www.w3.org/Graphics/SVG/IG/resources/svgprimer.html#getBBox) diff --git a/files/ja/web/api/svggraphicselement/index.html b/files/ja/web/api/svggraphicselement/index.html deleted file mode 100644 index 6ca8f103464484..00000000000000 --- a/files/ja/web/api/svggraphicselement/index.html +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: SVGGraphicsElement -slug: Web/API/SVGGraphicsElement -tags: - - API - - NeedsExample - - Reference - - SVG - - SVG OM -translation_of: Web/API/SVGGraphicsElement ---- -
{{APIRef("SVG")}}
- -

SVGGraphicsElement インターフェイスは、直接グループにグラフィックを描画することを主な目的とした SVG 要素を表します。

- -

{{InheritanceDiagram(600, 120)}}

- -
-

メモ: このインターフェイスは SVG 2 で導入され、 SVG 1.1 で導入された {{domxref("SVGLocatable")}} および {{domxref("SVGTransformable")}} インターフェイスを置き換えています。

-
- -

プロパティ

- -

このインターフェイスは親である {{domxref("SVGElement")}} からプロパティを継承しています。

- -
-
{{domxref("SVGGraphicsElement.transform")}} {{ReadOnlyInline}}
-
{{domxref("SVGAnimatedTransformList")}} で、指定された要素の {{cssxref("transform")}} プロパティおよび関連する {{SVGAttr("transform")}} 属性の計算値を反映します。
-
- -

メソッド

- -

このインターフェイスは親である {{domxref("SVGElement")}} からメソッドを継承しています。

- -
-
{{domxref("SVGGraphicsElement.getBBox()")}}
-
{{domxref("DOMRect")}} で、現在の要素の計算上の囲みボックスを返します。
-
{{domxref("SVGGraphicsElement.getCTM()")}}
-
{{domxref("DOMMatrix")}} で、現在の要素の座標系をその SVG ビューポートの座標系に変換する行列を返します。
-
{{domxref("SVGGraphicsElement.getScreenCTM()")}}
-
{{domxref("DOMMatrix")}} で、現在の要素の座標系を SVG 文書フラグメントの SVG ビューポートの座標系に変換する行列を返します。
-
- -

仕様書

- - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName("SVG2", "types.html#InterfaceSVGGraphicsElement", "SVGGraphicsElement")}}{{Spec2("SVG2")}}初回定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.SVGGraphicsElement")}}

diff --git a/files/ja/web/api/svggraphicselement/index.md b/files/ja/web/api/svggraphicselement/index.md new file mode 100644 index 00000000000000..6046e2ad11ef2b --- /dev/null +++ b/files/ja/web/api/svggraphicselement/index.md @@ -0,0 +1,46 @@ +--- +title: SVGGraphicsElement +slug: Web/API/SVGGraphicsElement +tags: + - API + - NeedsExample + - Reference + - SVG + - SVG OM +translation_of: Web/API/SVGGraphicsElement +--- +{{APIRef("SVG")}} + +**`SVGGraphicsElement`** インターフェイスは、直接グループにグラフィックを描画することを主な目的とした SVG 要素を表します。 + +{{InheritanceDiagram(600, 120)}} + +> **Note:** **メモ:** このインターフェイスは SVG 2 で導入され、 SVG 1.1 で導入された {{domxref("SVGLocatable")}} および {{domxref("SVGTransformable")}} インターフェイスを置き換えています。 + +## プロパティ + +_このインターフェイスは親である {{domxref("SVGElement")}} からプロパティを継承しています。_ + +- {{domxref("SVGGraphicsElement.transform")}} {{ReadOnlyInline}} + - : {{domxref("SVGAnimatedTransformList")}} で、指定された要素の {{cssxref("transform")}} プロパティおよび関連する {{SVGAttr("transform")}} 属性の計算値を反映します。 + +## メソッド + +_このインターフェイスは親である {{domxref("SVGElement")}} からメソッドを継承しています。_ + +- {{domxref("SVGGraphicsElement.getBBox()")}} + - : {{domxref("DOMRect")}} で、現在の要素の計算上の囲みボックスを返します。 +- {{domxref("SVGGraphicsElement.getCTM()")}} + - : {{domxref("DOMMatrix")}} で、現在の要素の座標系をその SVG ビューポートの座標系に変換する行列を返します。 +- {{domxref("SVGGraphicsElement.getScreenCTM()")}} + - : {{domxref("DOMMatrix")}} で、現在の要素の座標系を SVG 文書フラグメントの SVG ビューポートの座標系に変換する行列を返します。 + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| ---------------------------------------------------------------------------------------------------------------- | ------------------------ | -------- | +| {{SpecName("SVG2", "types.html#InterfaceSVGGraphicsElement", "SVGGraphicsElement")}} | {{Spec2("SVG2")}} | 初回定義 | + +## ブラウザーの互換性 + +{{Compat("api.SVGGraphicsElement")}} diff --git a/files/ja/web/api/svgrect/index.html b/files/ja/web/api/svgrect/index.html deleted file mode 100644 index a6b44e7e956824..00000000000000 --- a/files/ja/web/api/svgrect/index.html +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: SVGRect -slug: Web/API/SVGRect -tags: - - API - - Reference - - SVG - - SVG DOM -translation_of: Web/API/SVGRect ---- -
{{APIRef("SVG")}}
- -

SVGRect は矩形を表します。矩形は、最小の x の値と最小の y の値を特定する x と y の座標の対と、幅と、高さから構成されており、これらは、非負であるものと考えられます。

- -

SVGRect オブジェクトは、読み取り専用だと指定することができます。そのことは、そのオブジェクトをいじろうとする試みによって、例外が投げられるという結果になるだろう、ということを意味します。

- -

{{InheritanceDiagram(600, 140)}}

- -

属性

- -
-
{{domxref("SVGRect.x")}}
-
この座標の厳密な結果は、各要素に依存します。もしこの属性が指定済みでなければ、結果は、あたかも 0 という値が指定されているかのようになります。
-
{{domxref("SVGRect.y")}}
-
この座標の厳密な結果は、各要素に依存します。もしこの属性が指定済みでなければ、結果は、あたかも 0 という値が指定されているかのようになります。
-
{{domxref("SVGRect.width")}}
-
これは矩形の幅を表します。負の値はエラーを招きます。0 という値は要素の描画を無効にします。
-
{{SVGAttr("SVGRect.height")}}
-
これは矩形の高さを表します。負の値はエラーを招きます。0 という値は要素の描画を無効にします。
-
- -

メソッド

- -

このインタフェースは、親から、すなわち {{domxref("SVGGeometryElement")}} から、メソッドを継承しています。

- -

仕様

- - - - - - - - - - - - - - - - - - - -
仕様ステータス備考
{{SpecName("Geometry Interfaces", "#DOMRect", "DOMRect")}}{{Spec2("Geometry Interfaces")}}SVGRect を DOMRect の古い別名として変更。
{{SpecName("SVG1.1", "shapes.html#InterfaceSVGRectElement", "SVGRectElement")}}{{Spec2("SVG1.1")}}初回定義
- -

ブラウザー実装状況

- - - -

{{Compat("api.SVGRect")}}

diff --git a/files/ja/web/api/svgrect/index.md b/files/ja/web/api/svgrect/index.md new file mode 100644 index 00000000000000..d581ad20cd20d4 --- /dev/null +++ b/files/ja/web/api/svgrect/index.md @@ -0,0 +1,43 @@ +--- +title: SVGRect +slug: Web/API/SVGRect +tags: + - API + - Reference + - SVG + - SVG DOM +translation_of: Web/API/SVGRect +--- +{{APIRef("SVG")}} + +**`SVGRect`** は矩形を表します。矩形は、最小の x の値と最小の y の値を特定する x と y の座標の対と、幅と、高さから構成されており、これらは、非負であるものと考えられます。 + +**`SVGRect`** オブジェクトは、読み取り専用だと指定することができます。そのことは、そのオブジェクトをいじろうとする試みによって、例外が投げられるという結果になるだろう、ということを意味します。 + +{{InheritanceDiagram(600, 140)}} + +## 属性 + +- {{domxref("SVGRect.x")}} + - : この座標の厳密な結果は、各要素に依存します。もしこの属性が指定済みでなければ、結果は、あたかも `0` という値が指定されているかのようになります。 +- {{domxref("SVGRect.y")}} + - : この座標の厳密な結果は、各要素に依存します。もしこの属性が指定済みでなければ、結果は、あたかも `0` という値が指定されているかのようになります。 +- {{domxref("SVGRect.width")}} + - : これは矩形の幅を表します。負の値はエラーを招きます。0 という値は要素の描画を無効にします。 +- {{SVGAttr("SVGRect.height")}} + - : これは矩形の高さを表します。負の値はエラーを招きます。0 という値は要素の描画を無効にします。 + +## メソッド + +_このインタフェースは、親から、すなわち_ _{{domxref("SVGGeometryElement")}} から、メソッドを継承しています。_ + +## 仕様 + +| 仕様 | ステータス | 備考 | +| -------------------------------------------------------------------------------------------------------- | -------------------------------------------- | ----------------------------------------- | +| {{SpecName("Geometry Interfaces", "#DOMRect", "DOMRect")}} | {{Spec2("Geometry Interfaces")}} | SVGRect を DOMRect の古い別名として変更。 | +| {{SpecName("SVG1.1", "shapes.html#InterfaceSVGRectElement", "SVGRectElement")}} | {{Spec2("SVG1.1")}} | 初回定義 | + +## ブラウザー実装状況 + +{{Compat("api.SVGRect")}} diff --git a/files/ja/web/api/svgtextelement/index.html b/files/ja/web/api/svgtextelement/index.html deleted file mode 100644 index cb670d35341668..00000000000000 --- a/files/ja/web/api/svgtextelement/index.html +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: SVGTextElement -slug: Web/API/SVGTextElement -translation_of: Web/API/SVGTextElement ---- -

SVGTextElement インタフェース

- - -

SVGTextElement インタフェースは {{SVGElement("text")}} 要素に対応するインタフェースです。

- -

インタフェースの概要

- - - - - - - - - - - - - - - - - - - -
実装インタフェース{{domxref("SVGTextPositioningElement")}} 、 {{domxref("SVGTransformable")}}
メソッド無し
プロパティ無し
標準文書SVG 1.1 (2nd Edition)
- - - - -

プロパティ

- -

固有のプロパティはありません。

- - - -

メソッド

- -

固有のメソッドはありません。

- - - -

ブラウザ実装状況

-

{{Compat("api.SVGTextElement")}}

- -

関連情報

- diff --git a/files/ja/web/api/svgtextelement/index.md b/files/ja/web/api/svgtextelement/index.md new file mode 100644 index 00000000000000..c5c7b3fda2c0ec --- /dev/null +++ b/files/ja/web/api/svgtextelement/index.md @@ -0,0 +1,32 @@ +--- +title: SVGTextElement +slug: Web/API/SVGTextElement +translation_of: Web/API/SVGTextElement +--- +## SVGTextElement インタフェース + +`SVGTextElement` インタフェースは {{SVGElement("text")}} 要素に対応するインタフェースです。 + +### インタフェースの概要 + +| 実装インタフェース | {{domxref("SVGTextPositioningElement")}} 、 {{domxref("SVGTransformable")}} | +| ------------------ | ------------------------------------------------------------------------------------------------ | +| メソッド | _無し_ | +| プロパティ | _無し_ | +| 標準文書 | [SVG 1.1 (2nd Edition)](http://www.w3.org/TR/SVG/text.html#InterfaceSVGTextElement) | + +## プロパティ + +固有のプロパティはありません。 + +## メソッド + +固有のメソッドはありません。 + +## ブラウザ実装状況 + +{{Compat("api.SVGTextElement")}} + +## 関連情報 + +- {{SVGElement("text")}} SVG 要素 diff --git a/files/ja/web/api/syncevent/index.html b/files/ja/web/api/syncevent/index.html deleted file mode 100644 index 72840bfc6e239a..00000000000000 --- a/files/ja/web/api/syncevent/index.html +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: SyncEvent -slug: Web/API/SyncEvent -tags: - - API - - Background Sync - - Interface - - Non-standard - - Offline - - Reference - - ServiceWorker - - SyncEvent - - Workers -translation_of: Web/API/SyncEvent ---- -

{{APIRef("Service Workers API")}} {{Non-standard_header}}

- -

SyncEvent インターフェイスは、 ServiceWorker の {{domxref("ServiceWorkerGlobalScope")}} でディスパッチされる同期アクションを表します。

- -

このインターフェイスは {{domxref("ExtendableEvent")}} インターフェイスを継承しています。

- -

{{InheritanceDiagram(700, 60, 20)}}

- -

コンストラクタ

- -
-
{{domxref("SyncEvent.SyncEvent()")}}
-
新規の SyncEvent オブジェクトを作成します。
-
- -

プロパティ

- -

祖先である {{domxref("Event")}}. からプロパティを継承します。

- -
-
{{domxref("SyncEvent.tag")}} {{readonlyinline}}
-
この SyncEvent の開発者定義の識別子を返します。
-
{{domxref("SyncEvent.lastChance")}} {{readonlyinline}}
-
ユーザーエージェントが現在の試行の後に同期の試行をこれ以上行わない場合に true を返します。
-
- -

関数

- -

親である {{domxref("ExtendableEvent")}} から関数を継承します。

- -

無し。

- -

ブラウザーの互換性

- -
- - -

{{Compat("api.SyncEvent")}}

-
diff --git a/files/ja/web/api/syncevent/index.md b/files/ja/web/api/syncevent/index.md new file mode 100644 index 00000000000000..c91742cbef04e2 --- /dev/null +++ b/files/ja/web/api/syncevent/index.md @@ -0,0 +1,46 @@ +--- +title: SyncEvent +slug: Web/API/SyncEvent +tags: + - API + - Background Sync + - Interface + - Non-standard + - Offline + - Reference + - ServiceWorker + - SyncEvent + - Workers +translation_of: Web/API/SyncEvent +--- +{{APIRef("Service Workers API")}} {{Non-standard_header}} + +**`SyncEvent`** インターフェイスは、 ServiceWorker の {{domxref("ServiceWorkerGlobalScope")}} でディスパッチされる同期アクションを表します。 + +このインターフェイスは {{domxref("ExtendableEvent")}} インターフェイスを継承しています。 + +{{InheritanceDiagram(700, 60, 20)}} + +## コンストラクタ + +- {{domxref("SyncEvent.SyncEvent()")}} + - : 新規の `SyncEvent` オブジェクトを作成します。 + +## プロパティ + +_祖先である {{domxref("Event")}}_. からプロパティを継承します。 + +- {{domxref("SyncEvent.tag")}} {{readonlyinline}} + - : この `SyncEvent` の開発者定義の識別子を返します。 +- {{domxref("SyncEvent.lastChance")}} {{readonlyinline}} + - : ユーザーエージェントが現在の試行の後に同期の試行をこれ以上行わない場合に `true` を返します。 + +## 関数 + +_親である_ _{{domxref("ExtendableEvent")}}_ から関数を継承します。 + +無し。 + +## ブラウザーの互換性 + +{{Compat("api.SyncEvent")}} diff --git a/files/ja/web/api/syncevent/lastchance/index.html b/files/ja/web/api/syncevent/lastchance/index.html deleted file mode 100644 index d66393e0cdeaf2..00000000000000 --- a/files/ja/web/api/syncevent/lastchance/index.html +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: SyncEvent.lastChance -slug: Web/API/SyncEvent/lastChance -tags: - - API - - Background Sync - - Experimental - - Property - - Reference - - ServiceWorker - - SyncEvent - - lastChance -translation_of: Web/API/SyncEvent/lastChance ---- -

{{SeeCompatTable}}{{APIRef("")}}

- -

{{domxref("SyncEvent")}} インターフェイスの SyncEvent.lastChance 読み取り専用プロパティは、現在の試行後にユーザーエージェントが同期を試行しない場合に true を返します。 これは、 {{domxref("SyncEvent.SyncEvent","SyncEvent()")}} コンストラクタの lastChance パラメータに渡される値です。

- -

構文

- -
var lastChance = SyncEvent.lastChance
- -

- -

{{jsxref("Boolean")}} は、現在の試行の後にユーザーエージェントがこれ以上同期を試行しないかどうかを示します。

- -

仕様

- - - - - - - - - - -
仕様
Web Background Synchronization
- -

ブラウザー実装状況

- - - -

{{Compat("api.SyncEvent.lastChance")}}

diff --git a/files/ja/web/api/syncevent/lastchance/index.md b/files/ja/web/api/syncevent/lastchance/index.md new file mode 100644 index 00000000000000..c5a371be6ec7b5 --- /dev/null +++ b/files/ja/web/api/syncevent/lastchance/index.md @@ -0,0 +1,35 @@ +--- +title: SyncEvent.lastChance +slug: Web/API/SyncEvent/lastChance +tags: + - API + - Background Sync + - Experimental + - Property + - Reference + - ServiceWorker + - SyncEvent + - lastChance +translation_of: Web/API/SyncEvent/lastChance +--- +{{SeeCompatTable}}{{APIRef("")}} + +{{domxref("SyncEvent")}} インターフェイスの **`SyncEvent.lastChance`** 読み取り専用プロパティは、現在の試行後にユーザーエージェントが同期を試行しない場合に `true` を返します。 これは、 {{domxref("SyncEvent.SyncEvent","SyncEvent()")}} コンストラクタの `lastChance` パラメータに渡される値です。 + +## 構文 + + var lastChance = SyncEvent.lastChance + +### 値 + +{{jsxref("Boolean")}} は、現在の試行の後にユーザーエージェントがこれ以上同期を試行しないかどうかを示します。 + +## 仕様 + +| 仕様 | +| ----------------------------------------------------------------------------------------- | +| [Web Background Synchronization](https://wicg.github.io/background-sync/spec/#sync-event) | + +## ブラウザー実装状況 + +{{Compat("api.SyncEvent.lastChance")}} diff --git a/files/ja/web/api/syncevent/syncevent/index.html b/files/ja/web/api/syncevent/syncevent/index.html deleted file mode 100644 index da050475d43f5a..00000000000000 --- a/files/ja/web/api/syncevent/syncevent/index.html +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: SyncEvent.SyncEvent() -slug: Web/API/SyncEvent/SyncEvent -tags: - - API - - Background Sync - - Constructor - - Experimental - - Reference - - ServiceWorker - - SyncEvent -translation_of: Web/API/SyncEvent/SyncEvent ---- -

{{APIRef("Service Workers API")}}{{Non-standard_header}}

- -

SyncEvent() コンストラクタは、新規の {{domxref("SyncEvent")}} オブジェクトを作成します。

- -

構文

- -
var mySyncEvent = new SyncEvent(type, init)
- -

パラメータ

- -
-
type
-
イベントの型。.
-
init {{optional_inline}}
-
イベントオブジェクトに適用するカスタム設定を含むオプションオブジェクト。オプションは次の通りです: -
    -
  • tag: この SyncEvent の開発者が定義した一意の識別子。
  • -
  • lastChance: {{jsxref("Boolean")}} は、現在の試行後にユーザーエージェントが同期の試行をこれ以上行わないことを示しています。
  • -
-
-
- -

ブラウザーの互換性

- -
- - -

{{Compat("api.SyncEvent.SyncEvent")}}

-
diff --git a/files/ja/web/api/syncevent/syncevent/index.md b/files/ja/web/api/syncevent/syncevent/index.md new file mode 100644 index 00000000000000..352835c4a469a7 --- /dev/null +++ b/files/ja/web/api/syncevent/syncevent/index.md @@ -0,0 +1,32 @@ +--- +title: SyncEvent.SyncEvent() +slug: Web/API/SyncEvent/SyncEvent +tags: + - API + - Background Sync + - Constructor + - Experimental + - Reference + - ServiceWorker + - SyncEvent +translation_of: Web/API/SyncEvent/SyncEvent +--- +{{APIRef("Service Workers API")}}{{Non-standard_header}} + +**`SyncEvent()`** コンストラクタは、新規の {{domxref("SyncEvent")}} オブジェクトを作成します。 + +## 構文 + + var mySyncEvent = new SyncEvent(type, init) + +### パラメータ + +- _type_ + - : イベントの型。. +- _init_ {{optional_inline}} + - : イベントオブジェクトに適用するカスタム設定を含むオプションオブジェクト。オプションは次の通りです:\* `tag`: この `SyncEvent` の開発者が定義した一意の識別子。 + - `lastChance`: {{jsxref("Boolean")}} は、現在の試行後にユーザーエージェントが同期の試行をこれ以上行わないことを示しています。 + +## ブラウザーの互換性 + +{{Compat("api.SyncEvent.SyncEvent")}} diff --git a/files/ja/web/api/syncevent/tag/index.html b/files/ja/web/api/syncevent/tag/index.html deleted file mode 100644 index 0c05fbeeb007a7..00000000000000 --- a/files/ja/web/api/syncevent/tag/index.html +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: SyncEvent.tag -slug: Web/API/SyncEvent/tag -tags: - - API - - Background Sync - - Experimental - - Property - - Reference - - ServiceWorker - - SyncEvent - - tag -translation_of: Web/API/SyncEvent/tag ---- -

{{SeeCompatTable}}{{APIRef("")}}

- -

{{domxref("SyncEvent")}} インターフェイスの SyncEvent.tag 読み取り専用プロパティは、この SyncEvent の開発者定義の識別子を返します。これは、 {{domxref("SyncEvent.SyncEvent","SyncEvent()")}} コンストラクタの tag パラメータで渡される値です。

- -

構文

- -
var tag = SyncEvent.tag
- -

- -

この SyncEvent の開発者定義の識別子。

- -

仕様

- - - - - - - - - - - - - - -
仕様ステータス備考
{{SpecName('Background Sync','#sync-event', 'tag')}}{{Spec2('Background Sync')}}初回定義。
- -

ブラウザー実装状況

- - - -

{{Compat("api.SyncEvent.tag")}}

diff --git a/files/ja/web/api/syncevent/tag/index.md b/files/ja/web/api/syncevent/tag/index.md new file mode 100644 index 00000000000000..4300b7dcb64ab0 --- /dev/null +++ b/files/ja/web/api/syncevent/tag/index.md @@ -0,0 +1,35 @@ +--- +title: SyncEvent.tag +slug: Web/API/SyncEvent/tag +tags: + - API + - Background Sync + - Experimental + - Property + - Reference + - ServiceWorker + - SyncEvent + - tag +translation_of: Web/API/SyncEvent/tag +--- +{{SeeCompatTable}}{{APIRef("")}} + +{{domxref("SyncEvent")}} インターフェイスの **`SyncEvent.tag`** 読み取り専用プロパティは、この `SyncEvent` の開発者定義の識別子を返します。これは、 {{domxref("SyncEvent.SyncEvent","SyncEvent()")}} コンストラクタの `tag` パラメータで渡される値です。 + +## 構文 + + var tag = SyncEvent.tag + +### 値 + +この `SyncEvent` の開発者定義の識別子。 + +## 仕様 + +| 仕様 | ステータス | 備考 | +| -------------------------------------------------------------------- | ------------------------------------ | ---------- | +| {{SpecName('Background Sync','#sync-event', 'tag')}} | {{Spec2('Background Sync')}} | 初回定義。 | + +## ブラウザー実装状況 + +{{Compat("api.SyncEvent.tag")}} diff --git a/files/ja/web/api/syncmanager/index.html b/files/ja/web/api/syncmanager/index.html deleted file mode 100644 index afe97a909a1e9f..00000000000000 --- a/files/ja/web/api/syncmanager/index.html +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: SyncManager -slug: Web/API/SyncManager -translation_of: Web/API/SyncManager ---- -

{{APIRef("Service Workers API")}}{{Non-standard_header}}

- -

ServiceWorker APISyncManager インターフェイスは同期登録を登録、及び一覧表示のインターフェイスを提供します。

- -

プロパティ

- -

無し

- -

メソッド

- -
-
{{domxref("SyncManager.register")}}
-
新規の同期登録を作成し {{jsxref("Promise")}} を返します。
-
{{domxref("SyncManager.getTags")}}
-
SyncManager 登録の為にデベロッパーが定義した識別子リストを返します。
-
- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('Background Sync','#sync-manager-interface','SyncManager')}}{{Spec2('Background Sync')}}Initial definition.
- -

ブラウザの互換性

- -
- - -

{{Compat("api.SyncManager")}}

-
diff --git a/files/ja/web/api/syncmanager/index.md b/files/ja/web/api/syncmanager/index.md new file mode 100644 index 00000000000000..49e4a5e0337b30 --- /dev/null +++ b/files/ja/web/api/syncmanager/index.md @@ -0,0 +1,29 @@ +--- +title: SyncManager +slug: Web/API/SyncManager +translation_of: Web/API/SyncManager +--- +{{APIRef("Service Workers API")}}{{Non-standard_header}} + +[ServiceWorker API](/ja/docs/Web/API/ServiceWorker_API) の **`SyncManager`** インターフェイスは同期登録を登録、及び一覧表示のインターフェイスを提供します。 + +## プロパティ + +無し + +## メソッド + +- {{domxref("SyncManager.register")}} + - : 新規の同期登録を作成し {{jsxref("Promise")}} を返します。 +- {{domxref("SyncManager.getTags")}} + - : SyncManager 登録の為にデベロッパーが定義した識別子リストを返します。 + +## 仕様 + +| 仕様 | 状態 | コメント | +| ------------------------------------------------------------------------------------------------ | ------------------------------------ | ------------------- | +| {{SpecName('Background Sync','#sync-manager-interface','SyncManager')}} | {{Spec2('Background Sync')}} | Initial definition. | + +## ブラウザの互換性 + +{{Compat("api.SyncManager")}} diff --git a/files/ja/web/api/taskattributiontiming/containerid/index.html b/files/ja/web/api/taskattributiontiming/containerid/index.html deleted file mode 100644 index 460a200264baca..00000000000000 --- a/files/ja/web/api/taskattributiontiming/containerid/index.html +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: TaskAttributionTiming.containerId -slug: Web/API/TaskAttributionTiming/containerId -tags: - - API - - Long Tasks API - - Performance - - Property - - Reference - - TaskAttributionTiming -translation_of: Web/API/TaskAttributionTiming/containerId ---- -

{{SeeCompatTable}}{{APIRef("Long Tasks")}}

- -

{{domxref("TaskAttributionTiming")}} インタフェースの containerId 読み取り専用プロパティは、コンテナの id 属性を返します。 コンテナは、全体として長いタスクに関係している iframe、embed、object などです。

- -

構文

- -
var containerId = TaskAttributionTiming.containerId;
- -

- -

コンテナの id 属性を含む {{domxref("DOMString")}}。

- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('Long Tasks','#dom-taskattributiontiming-containerid','containerId')}}{{Spec2('Long Tasks')}}初期定義
- -

ブラウザーの互換性

- -
- - -

{{Compat("api.TaskAttributionTiming.containerId")}}

-
diff --git a/files/ja/web/api/taskattributiontiming/containerid/index.md b/files/ja/web/api/taskattributiontiming/containerid/index.md new file mode 100644 index 00000000000000..dfbb011c9ac228 --- /dev/null +++ b/files/ja/web/api/taskattributiontiming/containerid/index.md @@ -0,0 +1,33 @@ +--- +title: TaskAttributionTiming.containerId +slug: Web/API/TaskAttributionTiming/containerId +tags: + - API + - Long Tasks API + - Performance + - Property + - Reference + - TaskAttributionTiming +translation_of: Web/API/TaskAttributionTiming/containerId +--- +{{SeeCompatTable}}{{APIRef("Long Tasks")}} + +{{domxref("TaskAttributionTiming")}} インタフェースの **`containerId`** 読み取り専用プロパティは、コンテナの `id` 属性を返します。 コンテナは、全体として長いタスクに関係している iframe、embed、object などです。 + +## 構文 + + var containerId = TaskAttributionTiming.containerId; + +### 値 + +コンテナの `id` 属性を含む {{domxref("DOMString")}}。 + +## 仕様 + +| 仕様 | 状態 | コメント | +| ------------------------------------------------------------------------------------------------------------ | -------------------------------- | -------- | +| {{SpecName('Long Tasks','#dom-taskattributiontiming-containerid','containerId')}} | {{Spec2('Long Tasks')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.TaskAttributionTiming.containerId")}} diff --git a/files/ja/web/api/taskattributiontiming/containername/index.html b/files/ja/web/api/taskattributiontiming/containername/index.html deleted file mode 100644 index f45b04cba3fefe..00000000000000 --- a/files/ja/web/api/taskattributiontiming/containername/index.html +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: TaskAttributionTiming.containerName -slug: Web/API/TaskAttributionTiming/containerName -tags: - - API - - Long Tasks API - - Performance - - Property - - Reference - - TaskAttributionTiming -translation_of: Web/API/TaskAttributionTiming/containerName ---- -

{{SeeCompatTable}}{{APIRef("Long Tasks")}}

- -

{{domxref("TaskAttributionTiming")}} インタフェースの containerName 読み取り専用プロパティは、コンテナの name 属性を返します。 コンテナは、全体として長いタスクに関係している iframe、embed、object などです。

- -

構文

- -
var containerName = TaskAttributionTiming.containerName;
- -

- -

コンテナの name 属性を含む {{domxref("DOMString")}}。

- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('Long Tasks','#dom-taskattributiontiming-containername','containerName')}}{{Spec2('Long Tasks')}}初期定義
- -

ブラウザーの互換性

- -
- - -

{{Compat("api.TaskAttributionTiming.containerName")}}

-
diff --git a/files/ja/web/api/taskattributiontiming/containername/index.md b/files/ja/web/api/taskattributiontiming/containername/index.md new file mode 100644 index 00000000000000..b466e4c45795c1 --- /dev/null +++ b/files/ja/web/api/taskattributiontiming/containername/index.md @@ -0,0 +1,33 @@ +--- +title: TaskAttributionTiming.containerName +slug: Web/API/TaskAttributionTiming/containerName +tags: + - API + - Long Tasks API + - Performance + - Property + - Reference + - TaskAttributionTiming +translation_of: Web/API/TaskAttributionTiming/containerName +--- +{{SeeCompatTable}}{{APIRef("Long Tasks")}} + +{{domxref("TaskAttributionTiming")}} インタフェースの **`containerName`** 読み取り専用プロパティは、コンテナの `name` 属性を返します。 コンテナは、全体として長いタスクに関係している iframe、embed、object などです。 + +## 構文 + + var containerName = TaskAttributionTiming.containerName; + +### 値 + +コンテナの `name` 属性を含む {{domxref("DOMString")}}。 + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------------------------------------------------------- | -------------------------------- | -------- | +| {{SpecName('Long Tasks','#dom-taskattributiontiming-containername','containerName')}} | {{Spec2('Long Tasks')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.TaskAttributionTiming.containerName")}} diff --git a/files/ja/web/api/taskattributiontiming/containersrc/index.html b/files/ja/web/api/taskattributiontiming/containersrc/index.html deleted file mode 100644 index aa02485fc8100a..00000000000000 --- a/files/ja/web/api/taskattributiontiming/containersrc/index.html +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: TaskAttributionTiming.containerSrc -slug: Web/API/TaskAttributionTiming/containerSrc -tags: - - API - - Long Tasks API - - Performance - - Property - - Reference - - TaskAttributionTiming -translation_of: Web/API/TaskAttributionTiming/containerSrc ---- -

{{SeeCompatTable}}{{APIRef("Long Tasks")}}

- -

{{domxref("TaskAttributionTiming")}} インターフェイスの containerSrc 読み取り専用プロパティは、コンテナの src 属性を返します。 コンテナは、全体として長いタスクに関係している iframe、embed、object などです。

- -

構文

- -
var containerSrc = TaskAttributionTiming.containerSrc;
- -

- -

コンテナの src 属性を含む {{domxref("DOMString")}}。

- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('Long Tasks','#dom-taskattributiontiming-containersrc','containerSrc')}}{{Spec2('Long Tasks')}}初期定義
- -

ブラウザーの互換性

- -
- - -

{{Compat("api.TaskAttributionTiming.containerSrc")}}

-
diff --git a/files/ja/web/api/taskattributiontiming/containersrc/index.md b/files/ja/web/api/taskattributiontiming/containersrc/index.md new file mode 100644 index 00000000000000..237fb5c30c220f --- /dev/null +++ b/files/ja/web/api/taskattributiontiming/containersrc/index.md @@ -0,0 +1,33 @@ +--- +title: TaskAttributionTiming.containerSrc +slug: Web/API/TaskAttributionTiming/containerSrc +tags: + - API + - Long Tasks API + - Performance + - Property + - Reference + - TaskAttributionTiming +translation_of: Web/API/TaskAttributionTiming/containerSrc +--- +{{SeeCompatTable}}{{APIRef("Long Tasks")}} + +{{domxref("TaskAttributionTiming")}} インターフェイスの **`containerSrc`** 読み取り専用プロパティは、コンテナの `src` 属性を返します。 コンテナは、全体として長いタスクに関係している iframe、embed、object などです。 + +## 構文 + + var containerSrc = TaskAttributionTiming.containerSrc; + +### 値 + +コンテナの `src` 属性を含む {{domxref("DOMString")}}。 + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------------------------------------------------------- | -------------------------------- | -------- | +| {{SpecName('Long Tasks','#dom-taskattributiontiming-containersrc','containerSrc')}} | {{Spec2('Long Tasks')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.TaskAttributionTiming.containerSrc")}} diff --git a/files/ja/web/api/taskattributiontiming/containertype/index.html b/files/ja/web/api/taskattributiontiming/containertype/index.html deleted file mode 100644 index 5f1356999466b8..00000000000000 --- a/files/ja/web/api/taskattributiontiming/containertype/index.html +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: TaskAttributionTiming.containerType -slug: Web/API/TaskAttributionTiming/containerType -tags: - - API - - Long Tasks API - - Performance - - Property - - Reference - - TaskAttributionTiming -translation_of: Web/API/TaskAttributionTiming/containerType ---- -

{{SeeCompatTable}}{{APIRef("Long Tasks")}}

- -

{{domxref("TaskAttributionTiming")}} インターフェイスの containerType 読み取り専用プロパティは、フレームコンテナのタイプ(iframeembedobject のいずれか)を返します。

- -

構文

- -
var containerType = TaskAttributionTiming.containerType;
- -

- -

コンテナのタイプ(iframeembedobject のいずれか)を含む {{domxref("DOMString")}} です。

- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('Long Tasks','#dom-taskattributiontiming-containertype','containerType')}}{{Spec2('Long Tasks')}}初期定義
- -

ブラウザーの互換性

- -
- - -

{{Compat("api.TaskAttributionTiming.containerType")}}

-
diff --git a/files/ja/web/api/taskattributiontiming/containertype/index.md b/files/ja/web/api/taskattributiontiming/containertype/index.md new file mode 100644 index 00000000000000..2a889d74c35a04 --- /dev/null +++ b/files/ja/web/api/taskattributiontiming/containertype/index.md @@ -0,0 +1,33 @@ +--- +title: TaskAttributionTiming.containerType +slug: Web/API/TaskAttributionTiming/containerType +tags: + - API + - Long Tasks API + - Performance + - Property + - Reference + - TaskAttributionTiming +translation_of: Web/API/TaskAttributionTiming/containerType +--- +{{SeeCompatTable}}{{APIRef("Long Tasks")}} + +{{domxref("TaskAttributionTiming")}} インターフェイスの **`containerType`** 読み取り専用プロパティは、フレームコンテナのタイプ(`iframe`、`embed`、`object` のいずれか)を返します。 + +## 構文 + + var containerType = TaskAttributionTiming.containerType; + +### 値 + +コンテナのタイプ(`iframe`、`embed`、`object` のいずれか)を含む {{domxref("DOMString")}} です。 + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------------------------------------------------------- | -------------------------------- | -------- | +| {{SpecName('Long Tasks','#dom-taskattributiontiming-containertype','containerType')}} | {{Spec2('Long Tasks')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.TaskAttributionTiming.containerType")}} diff --git a/files/ja/web/api/taskattributiontiming/index.html b/files/ja/web/api/taskattributiontiming/index.html deleted file mode 100644 index e54a1ec5791e38..00000000000000 --- a/files/ja/web/api/taskattributiontiming/index.html +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: TaskAttributionTiming -slug: Web/API/TaskAttributionTiming -tags: - - API - - Experimental - - Interface - - Long Tasks API - - Performance - - TaskAttributionTiming -translation_of: Web/API/TaskAttributionTiming ---- -

{{SeeCompatTable}}{{APIRef("Long Tasks")}}

- -

Long Tasks APITaskAttributionTiming インターフェイスは、長いタスクに関連する作業とそれに関連するフレームコンテキストに関する情報を返します。 コンテナとも呼ばれるフレームコンテキストは、全体として長いタスクに関係している iframe、embed、object です。

- -

{{InheritanceDiagram}}

- -

プロパティ

- -
-
{{domxref('TaskAttributionTiming.containerType')}} {{readonlyinline}}
-
フレームコンテナのタイプ(iframeembedobject のいずれか)を返します。
-
{{domxref('TaskAttributionTiming.containerSrc')}} {{readonlyinline}}
-
コンテナの src 属性を返します。
-
{{domxref('TaskAttributionTiming.containerId')}} {{readonlyinline}}
-
コンテナの id 属性を返します。
-
{{domxref('TaskAttributionTiming.containerName')}} {{readonlyinline}}
-
コンテナの name 属性を返します。
-
- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('Long Tasks','#sec-TaskAttributionTiming','TaskAttributionTiming')}}{{Spec2('Long Tasks')}}初期定義
- -

ブラウザーの互換性

- -
- - -

{{Compat("api.TaskAttributionTiming")}}

-
diff --git a/files/ja/web/api/taskattributiontiming/index.md b/files/ja/web/api/taskattributiontiming/index.md new file mode 100644 index 00000000000000..90d799edda5caf --- /dev/null +++ b/files/ja/web/api/taskattributiontiming/index.md @@ -0,0 +1,38 @@ +--- +title: TaskAttributionTiming +slug: Web/API/TaskAttributionTiming +tags: + - API + - Experimental + - Interface + - Long Tasks API + - Performance + - TaskAttributionTiming +translation_of: Web/API/TaskAttributionTiming +--- +{{SeeCompatTable}}{{APIRef("Long Tasks")}} + +[Long Tasks API](/ja/docs/Web/API/Long_Tasks_API) の **`TaskAttributionTiming`** インターフェイスは、長いタスクに関連する作業とそれに関連するフレームコンテキストに関する情報を返します。 コンテナとも呼ばれるフレームコンテキストは、全体として長いタスクに関係している iframe、embed、object です。 + +{{InheritanceDiagram}} + +## プロパティ + +- {{domxref('TaskAttributionTiming.containerType')}} {{readonlyinline}} + - : フレームコンテナのタイプ(`iframe`、`embed`、`object` のいずれか)を返します。 +- {{domxref('TaskAttributionTiming.containerSrc')}} {{readonlyinline}} + - : コンテナの `src` 属性を返します。 +- {{domxref('TaskAttributionTiming.containerId')}} {{readonlyinline}} + - : コンテナの `id` 属性を返します。 +- {{domxref('TaskAttributionTiming.containerName')}} {{readonlyinline}} + - : コンテナの `name` 属性を返します。 + +## 仕様 + +| 仕様 | 状態 | コメント | +| -------------------------------------------------------------------------------------------------------- | -------------------------------- | -------- | +| {{SpecName('Long Tasks','#sec-TaskAttributionTiming','TaskAttributionTiming')}} | {{Spec2('Long Tasks')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.TaskAttributionTiming")}} diff --git a/files/ja/web/api/textdecoder/index.html b/files/ja/web/api/textdecoder/index.html deleted file mode 100644 index b69e8a9b00febb..00000000000000 --- a/files/ja/web/api/textdecoder/index.html +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: TextDecoder -slug: Web/API/TextDecoder -tags: - - API - - DOM - - Encoding - - Experimental - - Interface - - Reference - - TextDecoder -translation_of: Web/API/TextDecoder ---- -

{{APIRef("Encoding API")}}

- -

TextDecoder インターフェイスは特定のテキストエンコーディング、例えば UTF-8, ISO-8859-2, KOI8-R, GBK, 等のデコーダーを表します。デコーダーは入力としてバイトのストリームを取り、コードポイントのストリームを出力します。

- -

- -

型付き配列でのテキスト表現

- -

この例では、中国語/日本語の文字 を、異なる 5 種類の型付き配列、 {{jsxref("Uint8Array")}}, {{jsxref("Int8Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int16Array")}}, {{jsxref("Int32Array")}} で表します。

- -
let utf8decoder = new TextDecoder(); // default 'utf-8' or 'utf8'
-
-let u8arr = new Uint8Array([240, 160, 174, 183]);
-let i8arr = new Int8Array([-16, -96, -82, -73]);
-let u16arr = new Uint16Array([41200, 47022]);
-let i16arr = new Int16Array([-24336, -18514]);
-let i32arr = new Int32Array([-1213292304]);
-
-console.log(utf8decoder.decode(u8arr));
-console.log(utf8decoder.decode(i8arr));
-console.log(utf8decoder.decode(u16arr));
-console.log(utf8decoder.decode(i16arr));
-console.log(utf8decoder.decode(i32arr));
-
- -

UTF8 ではないテキストの扱い

- -

この例では、ロシア語の "Привет, мир!"、 "Hello, world." という意味のテキストをデコードします。 {{domxref("TextDecoder/TextDecoder", "TextDecoder()")}} コンストラクターでは、キリル語の文字に適した Windows-1251 文字エンコーディングを指定します。

- -
let win1251decoder = new TextDecoder('windows-1251');
-let bytes = new Uint8Array([207, 240, 232, 226, 229, 242, 44, 32, 236, 232, 240, 33]);
-console.log(win1251decoder.decode(bytes)); // Привет, мир!
-
- -

コンストラクター

- -
-
{{DOMxRef("TextDecoder.TextDecoder", "TextDecoder()")}}
-
新たに生成した TextDecoder を返します。これは、引数で指定したデコード方式を使用して連続したコードポイントを生成します。
-
- -

プロパティ

- -

TextDecoder インターフェイスは、何もプロパティを継承していません。

- -
-
{{DOMxRef("TextDecoder.prototype.encoding")}}{{ReadOnlyInline}}
-
デコーダーの名称を持つ {{DOMxRef("DOMString")}} であり、これは TextDecoder が使用する方式を表す文字列です。
-
{{DOMxRef("TextDecoder.prototype.fatal")}}{{ReadOnlyInline}}
-
エラーモードが fatal であるかを示す {{jsxref('Boolean')}} です。
-
{{DOMxRef("TextDecoder.prototype.ignoreBOM")}}{{ReadOnlyInline}}
-
バイトオーダーマークを無視するかどうかを示す {{jsxref('Boolean')}} です。
-
- -

メソッド

- -

TextDecoder インターフェイスは、何もメソッドを継承していません。

- -
-
{{DOMxRef("TextDecoder.prototype.decode()")}}
-
特定の TextDecoder オブジェクトの方式でデコードされたテキストを含む {{domxref("DOMString")}} を返します。
-
- -

仕様書

- - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName("Encoding", "#interface-textdecoder", "TextDecoder")}}{{Spec2("Encoding")}}初回定義
- -

ブラウザーの互換性

- -
-

{{Compat("api.TextDecoder")}}

-
- -

関連情報

- - diff --git a/files/ja/web/api/textdecoder/index.md b/files/ja/web/api/textdecoder/index.md new file mode 100644 index 00000000000000..c09137b096e0f4 --- /dev/null +++ b/files/ja/web/api/textdecoder/index.md @@ -0,0 +1,89 @@ +--- +title: TextDecoder +slug: Web/API/TextDecoder +tags: + - API + - DOM + - Encoding + - Experimental + - Interface + - Reference + - TextDecoder +translation_of: Web/API/TextDecoder +--- +{{APIRef("Encoding API")}} + +**`TextDecoder`** インターフェイスは特定のテキストエンコーディング、例えば `UTF-8`, `ISO-8859-2`, `KOI8-R`, `GBK`, 等のデコーダーを表します。デコーダーは入力としてバイトのストリームを取り、コードポイントのストリームを出力します。 + +## 例 + +### 型付き配列でのテキスト表現 + +この例では、中国語/日本語の文字 ![](https://mdn.mozillademos.org/files/16663/2019-05-21_191907.png) を、異なる 5 種類の型付き配列、 {{jsxref("Uint8Array")}}, {{jsxref("Int8Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int16Array")}}, {{jsxref("Int32Array")}} で表します。 + +```js +let utf8decoder = new TextDecoder(); // default 'utf-8' or 'utf8' + +let u8arr = new Uint8Array([240, 160, 174, 183]); +let i8arr = new Int8Array([-16, -96, -82, -73]); +let u16arr = new Uint16Array([41200, 47022]); +let i16arr = new Int16Array([-24336, -18514]); +let i32arr = new Int32Array([-1213292304]); + +console.log(utf8decoder.decode(u8arr)); +console.log(utf8decoder.decode(i8arr)); +console.log(utf8decoder.decode(u16arr)); +console.log(utf8decoder.decode(i16arr)); +console.log(utf8decoder.decode(i32arr)); +``` + +### UTF8 ではないテキストの扱い + +この例では、ロシア語の "Привет, мир!"、 "Hello, world." という意味のテキストをデコードします。 {{domxref("TextDecoder/TextDecoder", "TextDecoder()")}} コンストラクターでは、キリル語の文字に適した Windows-1251 文字エンコーディングを指定します。 + +```js +let win1251decoder = new TextDecoder('windows-1251'); +let bytes = new Uint8Array([207, 240, 232, 226, 229, 242, 44, 32, 236, 232, 240, 33]); +console.log(win1251decoder.decode(bytes)); // Привет, мир! +``` + +## コンストラクター + +- {{DOMxRef("TextDecoder.TextDecoder", "TextDecoder()")}} + - : 新たに生成した `TextDecoder` を返します。これは、引数で指定したデコード方式を使用して連続したコードポイントを生成します。 + +## プロパティ + +_`TextDecoder` インターフェイスは、何もプロパティを継承していません。_ + +- {{DOMxRef("TextDecoder.prototype.encoding")}}{{ReadOnlyInline}} + - : デコーダーの名称を持つ {{DOMxRef("DOMString")}} であり、これは `TextDecoder` が使用する方式を表す文字列です。 +- {{DOMxRef("TextDecoder.prototype.fatal")}}{{ReadOnlyInline}} + - : エラーモードが fatal であるかを示す {{jsxref('Boolean')}} です。 +- {{DOMxRef("TextDecoder.prototype.ignoreBOM")}}{{ReadOnlyInline}} + - : バイトオーダーマークを無視するかどうかを示す {{jsxref('Boolean')}} です。 + +## メソッド + +_`TextDecoder` インターフェイスは、何もメソッドを継承していません。_ + +- {{DOMxRef("TextDecoder.prototype.decode()")}} + - : 特定の `TextDecoder` オブジェクトの方式でデコードされたテキストを含む {{domxref("DOMString")}} を返します。 + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| ---------------------------------------------------------------------------------------- | ---------------------------- | -------- | +| {{SpecName("Encoding", "#interface-textdecoder", "TextDecoder")}} | {{Spec2("Encoding")}} | 初回定義 | + +## ブラウザーの互換性 + +{{Compat("api.TextDecoder")}} + +## 関連情報 + +- 逆の操作を表す {{DOMxRef("TextEncoder")}} インターフェイス。 +- [`StringView`](/ja/Add-ons/Code_snippets/StringView) – 型付き配列による、C ライクな文字列の表現 +- 非サポートブラウザーでもこのインターフェイスを使用可能にする [shim](https://github.com/inexorabletash/text-encoding)。 +- [`Components.utils.importGlobalProperties`](/ja/docs/Mozilla/Tech/XPCOM/Language_Bindings/Components.utils.importGlobalProperties) +- [Node.js supports global export from v11.0.0](https://nodejs.org/api/util.html#util_class_util_textdecoder) diff --git a/files/ja/web/api/texttrack/cuechange_event/index.html b/files/ja/web/api/texttrack/cuechange_event/index.html deleted file mode 100644 index 3911bcb2eea81d..00000000000000 --- a/files/ja/web/api/texttrack/cuechange_event/index.html +++ /dev/null @@ -1,106 +0,0 @@ ---- -title: 'TextTrack: cuechange イベント' -slug: Web/API/TextTrack/cuechange_event -tags: - - API - - Event - - Reference - - TextTrack - - WebVTT - - cuechange - - oncuechange - - track - - イベント - - テキストトラック - - トラック -translation_of: Web/API/TextTrack/cuechange_event ---- -
{{APIRef}}
- -

cuechange イベントは、 {{domxref("TextTrack")}} が現在表示しているキューが変更されたときに発生します。このイベントは、もし表示されているものがあれば、 TextTrack および {{domxref("HTMLTrackElement")}} の両方に発生します。

- - - - - - - - - - - - - - - - - - - - -
バブリングなし
キャンセル不可
インターフェイス{{domxref("Event")}}
イベントハンドラープロパティ{{domxref("GlobalEventHandlers.oncuechange")}}
- -

- -

TextTrack 上で

- -

cuechange イベントのリスナーを TextTrack に設定するには、 {{domxref("EventTarget.addEventListener", "addEventListener()")}} メソッドを使用します。

- -
track.addEventListener('cuechange', function () {
-  let cues = track.activeCues;  // 現在のキューの配列
-});
-
- -

あるいは、 oncuechange イベントハンドラ-プロパティを設定しても構いません。

- -
track.oncuechange = function () {
-  let cues = track.activeCues; // 現在のキューの配列
-}
- -

track 要素上で

- -

基本となる {{domxref("TextTrack")}} は、 {{domxref("HTMLTrackElement.track", "track")}} プロパティで識別されますが、現在表示されているキューが変更されるたびに {{domxref("TextTrack.cuechange_event", "cuechange")}} イベントを受け取ります。これは、トラックがメディア要素に結び付けられていなくても発生します。

- -

トラックがメディア要素に結び付けられている場合、 {{HTMLElement("track")}} 要素を {{HTMLElement("audio")}} または {{HTMLElement("video")}} 要素の子として使用すると、 cuechange イベントは {{domxref("HTMLTrackElement")}} にも送信されます。

- -
let textTrackElem = document.getElementById("texttrack");
-
-textTrackElem.addEventListener("cuechange", (event) => {
-  let cues = event.target.track.activeCues;
-});
-
- -

また、oncuechange イベントハンドラーを使用することもできます。

- -
let textTrackElem = document.getElementById("texttrack");
-
-textTrackElem.oncuechange = (event) => {
-  let cues = event.target.track.activeCues;
-});
- -

仕様書

- - - - - - - - - - - - - - -
仕様書状態
{{SpecName('HTML WHATWG', '#event-media-cuechange', 'cuechange')}}{{Spec2('HTML WHATWG')}}
- -

ブラウザーの互換性

- -

{{Compat("api.TextTrack.cuechange_event")}}

- -

関連情報

- - diff --git a/files/ja/web/api/texttrack/cuechange_event/index.md b/files/ja/web/api/texttrack/cuechange_event/index.md new file mode 100644 index 00000000000000..ca3c77c5186e4f --- /dev/null +++ b/files/ja/web/api/texttrack/cuechange_event/index.md @@ -0,0 +1,84 @@ +--- +title: 'TextTrack: cuechange イベント' +slug: Web/API/TextTrack/cuechange_event +tags: + - API + - Event + - Reference + - TextTrack + - WebVTT + - cuechange + - oncuechange + - track + - イベント + - テキストトラック + - トラック +translation_of: Web/API/TextTrack/cuechange_event +--- +{{APIRef}} + +**`cuechange`** イベントは、 {{domxref("TextTrack")}} が現在表示しているキューが変更されたときに発生します。このイベントは、もし表示されているものがあれば、 `TextTrack` _および_ {{domxref("HTMLTrackElement")}} の両方に発生します。 + +| バブリング | なし | +| ---------------------------- | ------------------------------------------------------------ | +| キャンセル | 不可 | +| インターフェイス | {{domxref("Event")}} | +| イベントハンドラープロパティ | {{domxref("GlobalEventHandlers.oncuechange")}} | + +## 例 + +### TextTrack 上で + +`cuechange` イベントのリスナーを `TextTrack` に設定するには、 {{domxref("EventTarget.addEventListener", "addEventListener()")}} メソッドを使用します。 + +```js +track.addEventListener('cuechange', function () { + let cues = track.activeCues; // 現在のキューの配列 +}); +``` + +あるいは、 [`oncuechange`](/ja/docs/Web/API/TextTrack/oncuechange) イベントハンドラ-プロパティを設定しても構いません。 + +```js +track.oncuechange = function () { + let cues = track.activeCues; // 現在のキューの配列 +} +``` + +### track 要素上で + +基本となる {{domxref("TextTrack")}} は、 {{domxref("HTMLTrackElement.track", "track")}} プロパティで識別されますが、現在表示されているキューが変更されるたびに {{domxref("TextTrack.cuechange_event", "cuechange")}} イベントを受け取ります。これは、トラックがメディア要素に結び付けられていなくても発生します。 + +トラックがメディア要素に結び付けられて*いる*場合、 {{HTMLElement("track")}} 要素を {{HTMLElement("audio")}} または {{HTMLElement("video")}} 要素の子として使用すると、 `cuechange` イベントは {{domxref("HTMLTrackElement")}} にも送信されます。 + +```js +let textTrackElem = document.getElementById("texttrack"); + +textTrackElem.addEventListener("cuechange", (event) => { + let cues = event.target.track.activeCues; +}); +``` + +また、`oncuechange` イベントハンドラーを使用することもできます。 + +```js +let textTrackElem = document.getElementById("texttrack"); + +textTrackElem.oncuechange = (event) => { + let cues = event.target.track.activeCues; +}); +``` + +## 仕様書 + +| 仕様書 | 状態 | +| ---------------------------------------------------------------------------------------- | -------------------------------- | +| {{SpecName('HTML WHATWG', '#event-media-cuechange', 'cuechange')}} | {{Spec2('HTML WHATWG')}} | + +## ブラウザーの互換性 + +{{Compat("api.TextTrack.cuechange_event")}} + +## 関連情報 + +- {{glossary("WebVTT")}} diff --git a/files/ja/web/api/texttrack/mode/index.html b/files/ja/web/api/texttrack/mode/index.html deleted file mode 100644 index 434fda57eb956e..00000000000000 --- a/files/ja/web/api/texttrack/mode/index.html +++ /dev/null @@ -1,108 +0,0 @@ ---- -title: TextTrack.mode -slug: Web/API/TextTrack/mode -tags: - - Accessibility - - NeedsExample - - Property - - TextTrack - - Web - - WebVTT - - mode -translation_of: Web/API/TextTrack/mode ---- -
{{APIRef("WebVTT")}}
- -

{{domxref("TextTrack")}} インターフェイスの mode プロパティは、テキストトラックのモードを指定して制御する disabled, hidden, showing のいずれかの文字列です。この値を読み取って現在のモードを決定したり、この値を変更してモードを切り替えることができます。

- -

さらに、 Safari でサブタイトルのキューを表示するには、独自のビデオプレーヤーコントロールを実装する際に、 default 論理値属性を true に設定する必要があります。

- -

構文

- -
var mode = textTrack.mode;
-
-textTrack.mode = "disabled" | "hidden" | "showing";
- -

- -

トラックの現在のモードを示す {{domxref("DOMString")}}。 テキストトラックモードは、テキストトラックモード定数にリストされている値の1つです。

- -

テキストトラックモード定数

- -

テキストトラックモードは IDL 列挙型 TextTrackMode を使用して識別されることもあり、次のいずれかの値にする必要があります。

- -
-
disabled
-
テキストトラックは現在無効になっています。トラックの存在は DOM で公開されていますが、ユーザーエージェントはそれ以外の場合は無視しています。キューはアクティブではなく、イベントは発行されておらず、ユーザーエージェントはトラックのキューを取得しようとしません。テキストトラックが {{htmlattrxref("default", "track")}} 論理値属性を持っている場合の既定値は showing です。
-
hidden
-
テキストトラックは現在アクティブですが、キューを表示しません。 ユーザーエージェントがまだトラックのキューを取得しようとしていない場合は、すぐに取得します(それにより、トラックの {{domxref("TextTrack.cues")}} プロパティが設定されます)。 テキストが表示されていなくても、ユーザーエージェントはアクティブなキューのリストを(トラックの {{domxref("TextTrack.activeCues", "activeCues")}} プロパティに)保持しており、イベントは対応する時間に発生します。
-
showing
-
テキストトラックは現在有効になっており、表示しています。トラックのキューリストをまだ取得していない場合は、すぐに取得します。 {{domxref("TextTrack.activeCues", "activeCues")}} リストは維持されており、イベントは適切なタイミングで発生します。 トラックのテキストも、スタイリングとトラックの {{domxref("TextTrack.kind", "kind")}} に基づいて適切に描画します。
-
- -

使用上の注意

- -

mode の既定値は、 {{htmlattrxref("default", "track")}} 論理値属性が指定されていない場合は disabled で、指定されている場合の mode の既定値は showing です。テキストトラックが disabled の状態で読み込まれると、対応する WebVTT ファイルは、状態が showing または hidden のいずれかに変わるまで読み込まれません。このようにして、キューが実際に必要とされない限り、リソースの取得とメモリの使用は回避されます。

- -

しかし、これは、例えば、ページ読み込み時にキューのいくつかの側面を処理するために {{event("load")}} イベントを処理している間にトラックのキューに関係するアクションを実行したい場合、トラックモードが最初に disabled になっていた場合、キューの読み込みを起動するために modehidden または showing のいずれかに変更しなければならないことを意味しています。

- -

モードが showing の場合、テキストトラックはその {{domxref("TextTrack.kind", "kind")}} によって異なる方法で実行されます。 一般に次のとおりです。

- - - -

- -

この例では、キューが終了するたびに動画が自動的に再生を一時停止するように、テキストトラックのキューを設定します。これは、各キューの {{domxref("TextTrackCue.pauseonExit", "pauseOnExit")}} プロパティを true に設定することで実現します。ただし、トラックのキューを確実に利用できるようにするために、まず modeshowingに設定します。

- -
window.addEventListener("load", event => {
-  let trackElem = document.querySelector("track");
-  let track = trackElem.track;
-
-  track.mode = "showing";
-
-  for (let index=0; index < track.cues.length; index++) {
-    let cue = track.cues[index];
-    cue.pauseOnExit = true;
-  };
-});
- -

仕様書

- - - - - - - - - - - - - - - - -
仕様書状態備考
{{ SpecName('HTML WHATWG', '#dom-texttrack-mode', 'mode') }}{{ Spec2('HTML WHATWG') }}
- -

ブラウザーの互換性

- -
-

{{Compat("api.TextTrack.mode")}}

-
- -

関連情報

- - diff --git a/files/ja/web/api/texttrack/mode/index.md b/files/ja/web/api/texttrack/mode/index.md new file mode 100644 index 00000000000000..d810c823c102c8 --- /dev/null +++ b/files/ja/web/api/texttrack/mode/index.md @@ -0,0 +1,89 @@ +--- +title: TextTrack.mode +slug: Web/API/TextTrack/mode +tags: + - Accessibility + - NeedsExample + - Property + - TextTrack + - Web + - WebVTT + - mode +translation_of: Web/API/TextTrack/mode +--- +{{APIRef("WebVTT")}} + +{{domxref("TextTrack")}} インターフェイスの **`mode`** プロパティは、テキストトラックのモードを指定して制御する `disabled`, `hidden`, `showing` のいずれかの文字列です。この値を読み取って現在のモードを決定したり、この値を変更してモードを切り替えることができます。 + +> **Note:** さらに、 Safari でサブタイトルのキューを表示するには、独自のビデオプレーヤーコントロールを実装する際に、 **`default`** 論理値属性を true に設定する必要があります。 + +## 構文 + + var mode = textTrack.mode; + + textTrack.mode = "disabled" | "hidden" | "showing"; + +### 値 + +トラックの現在のモードを示す {{domxref("DOMString")}}。 テキストトラックモードは、[テキストトラックモード定数](#text_track_mode_constants)にリストされている値の 1 つです。 + +#### テキストトラックモード定数 + +テキストトラックモードは IDL 列挙型 `TextTrackMode` を使用して識別されることもあり、次のいずれかの値にする必要があります。 + +- `disabled` + - : テキストトラックは現在無効になっています。トラックの存在は DOM で公開されていますが、ユーザーエージェントはそれ以外の場合は無視しています。キューはアクティブではなく、イベントは発行されておらず、ユーザーエージェントはトラックのキューを取得しようとしません。テキストトラックが {{htmlattrxref("default", "track")}} 論理値属性を持っている場合の既定値は `showing` です。 +- `hidden` + - : テキストトラックは現在アクティブですが、キューを表示しません。 ユーザーエージェントがまだトラックのキューを取得しようとしていない場合は、すぐに取得します(それにより、トラックの {{domxref("TextTrack.cues")}} プロパティが設定されます)。 テキストが表示されていなくても、ユーザーエージェントはアクティブなキューのリストを(トラックの {{domxref("TextTrack.activeCues", "activeCues")}} プロパティに)保持しており、イベントは対応する時間に発生します。 +- `showing` + - : テキストトラックは現在有効になっており、表示しています。トラックのキューリストをまだ取得していない場合は、すぐに取得します。 {{domxref("TextTrack.activeCues", "activeCues")}} リストは維持されており、イベントは適切なタイミングで発生します。 トラックのテキストも、スタイリングとトラックの {{domxref("TextTrack.kind", "kind")}} に基づいて適切に描画します。 + +## 使用上の注意 + +`mode` の既定値は、 {{htmlattrxref("default", "track")}} 論理値属性が指定されていない場合は `disabled` で、指定されている場合の `mode` の既定値は `showing` です。テキストトラックが `disabled` の状態で読み込まれると、対応する WebVTT ファイルは、状態が `showing` または `hidden` のいずれかに変わるまで読み込まれません。このようにして、キューが実際に必要とされない限り、リソースの取得とメモリの使用は回避されます。 + +しかし、これは、例えば、ページ読み込み時にキューのいくつかの側面を処理するために {{event("load")}} イベントを処理している間にトラックのキューに関係するアクションを実行したい場合、トラックモードが最初に `disabled` になっていた場合、キューの読み込みを起動するために `mode` を `hidden` または `showing` のいずれかに変更しなければならないことを意味しています。 + +モードが `showing` の場合、テキストトラックはその {{domxref("TextTrack.kind", "kind")}} によって異なる方法で実行されます。 一般に次のとおりです。 + +- `kind` が `subtitles` (字幕) または `captions` (キャプション) のトラックは、動画の上にキューを重ねてレンダリングされます。 +- `kind` が `descriptions` (説明) であるトラックは、視覚的ではない形式で表示されます (例えば、動画においてテキストはアクションを声で説明することがあります)。 +- `kind` が `chapters`(チャプター、章)のトラックは、ユーザーエージェントまたはウェブサイトまたはウェブアプリによって、名前付きチャプターをナビゲートするためのインターフェイスを構築して表示するために使用されます。 ここで、リスト内の各キューはメディア内のチャプターを表します。 その後、ユーザーは、キューの開始位置で開始し、キューの終了位置で終了する目的のチャプターに移動できます。 + +## 例 + +この例では、キューが終了するたびに動画が自動的に再生を一時停止するように、テキストトラックのキューを設定します。これは、各キューの {{domxref("TextTrackCue.pauseonExit", "pauseOnExit")}} プロパティを `true` に設定することで実現します。ただし、トラックのキューを確実に利用できるようにするために、まず `mode` を `showing`に設定します。 + +```js +window.addEventListener("load", event => { + let trackElem = document.querySelector("track"); + let track = trackElem.track; + + track.mode = "showing"; + + for (let index=0; index < track.cues.length; index++) { + let cue = track.cues[index]; + cue.pauseOnExit = true; + }; +}); +``` + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| -------------------------------------------------------------------------------- | ------------------------------------ | ---- | +| {{ SpecName('HTML WHATWG', '#dom-texttrack-mode', 'mode') }} | {{ Spec2('HTML WHATWG') }} | | + +## ブラウザーの互換性 + +{{Compat("api.TextTrack.mode")}} + +## 関連情報 + +- [WebVTT](/ja/docs/Web/API/WebVTT_API) +- {{domxref("TextTrack")}} +- {{domxref("TextTrackList")}} +- {{domxref("TextTrackCueList")}} +- {{domxref("VTTCue")}} +- {{HTMLElement("track")}} +- {{domxref("HTMLTrackElement")}} diff --git a/files/ja/web/api/timeranges/end/index.html b/files/ja/web/api/timeranges/end/index.html deleted file mode 100644 index 2c81c48a852f66..00000000000000 --- a/files/ja/web/api/timeranges/end/index.html +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: TimeRanges.end() -slug: Web/API/TimeRanges/end -tags: - - API - - HTML DOM - - Media - - Method - - Reference - - TimeRanges -translation_of: Web/API/TimeRanges/end ---- -
{{APIRef("DOM")}}
- -

指定された時間範囲が終わる時間オフセットを返します。

- -

構文

- -
endTime = TimeRanges.end(index)
-
- -

パラメーター

- - - -

例外

- -
-
INDEX_SIZE_ERR
-
指定されたインデックスが既存の範囲に対応しない場合にスローされる DOMException
-
- -

- -

ID が "myVideo" の動画要素がある場合、

- -
var v = document.getElementById("myVideo");
-
-var buf = v.buffered;
-
-var numRanges = buf.length;
-
-if (buf.length == 1) {
-  // 1つの範囲のみ
-  if (buf.start(0) == 0 && buf.end(0) == v.duration) {
-    // 1つの範囲が動画の最初から始まり、
-    // 動画の最後で終わるため、すべてが読み込まれています
-  }
-}
-
- -

この例では、時間範囲を見て、動画全体が読み込まれたかどうかを確認します。

- -

仕様

- - - - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName("HTML WHATWG", "#dom-timeranges-end", "TimeRanges.end()")}}{{Spec2("HTML WHATWG")}}初期定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.TimeRanges.end")}}

diff --git a/files/ja/web/api/timeranges/end/index.md b/files/ja/web/api/timeranges/end/index.md new file mode 100644 index 00000000000000..39178871227eda --- /dev/null +++ b/files/ja/web/api/timeranges/end/index.md @@ -0,0 +1,60 @@ +--- +title: TimeRanges.end() +slug: Web/API/TimeRanges/end +tags: + - API + - HTML DOM + - Media + - Method + - Reference + - TimeRanges +translation_of: Web/API/TimeRanges/end +--- +{{APIRef("DOM")}} + +指定された時間範囲が終わる時間オフセットを返します。 + +## 構文 + + endTime = TimeRanges.end(index) + +### パラメーター + +- `index` は、終了時間を返す範囲の番号です。 + +### 例外 + +- INDEX_SIZE_ERR + - : 指定されたインデックスが既存の範囲に対応しない場合にスローされる `DOMException`。 + +## 例 + +ID が "myVideo" の動画要素がある場合、 + +```js +var v = document.getElementById("myVideo"); + +var buf = v.buffered; + +var numRanges = buf.length; + +if (buf.length == 1) { + // 1つの範囲のみ + if (buf.start(0) == 0 && buf.end(0) == v.duration) { + // 1つの範囲が動画の最初から始まり、 + // 動画の最後で終わるため、すべてが読み込まれています + } +} +``` + +この例では、時間範囲を見て、動画全体が読み込まれたかどうかを確認します。 + +## 仕様 + +| 仕様 | 状態 | コメント | +| -------------------------------------------------------------------------------------------- | -------------------------------- | -------- | +| {{SpecName("HTML WHATWG", "#dom-timeranges-end", "TimeRanges.end()")}} | {{Spec2("HTML WHATWG")}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.TimeRanges.end")}} diff --git a/files/ja/web/api/timeranges/index.html b/files/ja/web/api/timeranges/index.html deleted file mode 100644 index 1773e892062a6d..00000000000000 --- a/files/ja/web/api/timeranges/index.html +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: TimeRanges -slug: Web/API/TimeRanges -tags: - - API - - HTML DOM - - Interface - - Media - - NeedsExample - - Reference - - TopicStub -translation_of: Web/API/TimeRanges ---- -
{{APIRef("DOM")}}
- -

TimeRanges インターフェイスは、主に {{HTMLElement("audio")}} 要素と {{HTMLElement("video")}} 要素で使用するためにメディアをロードするときにメディアのどの部分がバッファリングされたかを追跡する目的で、一連の時間範囲を表すために使用します。

- -

TimeRanges オブジェクトには、1つ以上の時間範囲が含まれ、それぞれが開始時間と終了時間のオフセットで指定されます。 各時間範囲を参照するには、start() メソッドおよび end() メソッドを使用して、取得する時間範囲のインデックス番号を渡します。

- -

正規化された TimeRanges オブジェクト(英語)」という用語は、そのようなオブジェクトの範囲が順序付けられ、重なり合わず、空ではなく、触れていないことを示します(隣接する範囲は1つの大きな範囲に折り畳まれます)。

- -

プロパティ

- -
-
{{domxref("TimeRanges.length")}} {{ReadOnlyInline}}
-
時間範囲オブジェクトによって表される時間範囲の数を unsigned long 型で返します。
-
- -

メソッド

- -
-
{{domxref("TimeRanges.start()")}}
-
指定されたインデックスを持つ範囲の開始時間を返します。
-
{{domxref("TimeRanges.end()")}}
-
指定された範囲の終了時間を返します。
-
- -

仕様

- - - - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName("HTML WHATWG", "#time-ranges", "TimeRanges")}}{{Spec2("HTML WHATWG")}}初期定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.TimeRanges")}}

diff --git a/files/ja/web/api/timeranges/index.md b/files/ja/web/api/timeranges/index.md new file mode 100644 index 00000000000000..d51b1965ae6c4d --- /dev/null +++ b/files/ja/web/api/timeranges/index.md @@ -0,0 +1,42 @@ +--- +title: TimeRanges +slug: Web/API/TimeRanges +tags: + - API + - HTML DOM + - Interface + - Media + - NeedsExample + - Reference + - TopicStub +translation_of: Web/API/TimeRanges +--- +{{APIRef("DOM")}} + +**`TimeRanges`** インターフェイスは、主に {{HTMLElement("audio")}} 要素と {{HTMLElement("video")}} 要素で使用するためにメディアをロードするときにメディアのどの部分がバッファリングされたかを追跡する目的で、一連の時間範囲を表すために使用します。 + +`TimeRanges` オブジェクトには、1 つ以上の時間範囲が含まれ、それぞれが開始時間と終了時間のオフセットで指定されます。 各時間範囲を参照するには、`start()` メソッドおよび `end()` メソッドを使用して、取得する時間範囲のインデックス番号を渡します。 + +「[正規化された TimeRanges オブジェクト](https://www.w3.org/TR/html52/semantics-embedded-content.html#normalized-timeranges-object)(英語)」という用語は、そのようなオブジェクトの範囲が順序付けられ、重なり合わず、空ではなく、触れていないことを示します(隣接する範囲は 1 つの大きな範囲に折り畳まれます)。 + +## プロパティ + +- {{domxref("TimeRanges.length")}} {{ReadOnlyInline}} + - : 時間範囲オブジェクトによって表される時間範囲の数を `unsigned long` 型で返します。 + +## メソッド + +- {{domxref("TimeRanges.start()")}} + - : 指定されたインデックスを持つ範囲の開始時間を返します。 +- {{domxref("TimeRanges.end()")}} + - : 指定された範囲の終了時間を返します。 + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------------------- | -------------------------------- | -------- | +| {{SpecName("HTML WHATWG", "#time-ranges", "TimeRanges")}} | {{Spec2("HTML WHATWG")}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.TimeRanges")}} diff --git a/files/ja/web/api/timeranges/length/index.html b/files/ja/web/api/timeranges/length/index.html deleted file mode 100644 index 967022eaaf59bd..00000000000000 --- a/files/ja/web/api/timeranges/length/index.html +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: TimeRanges.length -slug: Web/API/TimeRanges/length -tags: - - API - - HTML DOM - - Media - - Property - - Read-only - - Reference - - TimeRanges -translation_of: Web/API/TimeRanges/length ---- -
{{APIRef("DOM")}}
- -

TimeRanges.length 読み取り専用プロパティは、オブジェクト内の範囲の数を返します。
-

- -

構文

- -
length = TimeRanges.length;
-
- -

- -

ID が "myVideo" の動画要素がある場合、

- -
var v = document.GetElementById("myVideo");
-
-var buf = v.buffered;
-
-var numRanges = buf.length;
-
-if (buf.length == 1) {
-  // 1つの範囲のみ
-  if (buf.start(0) == 0 && buf.end(0) == v.duration) {
-    // 1つの範囲が動画の最初から始まり、
-    // 動画の最後で終わるため、すべてが読み込まれています
-  }
-}
-
- -

この例では、時間範囲を見て、動画全体が読み込まれたかどうかを確認します。

- -

仕様

- - - - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName("HTML WHATWG", "#dom-timeranges-length", "TimeRanges.length()")}}{{Spec2("HTML WHATWG")}}初期定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.TimeRanges.length")}}

diff --git a/files/ja/web/api/timeranges/length/index.md b/files/ja/web/api/timeranges/length/index.md new file mode 100644 index 00000000000000..499420de4716bd --- /dev/null +++ b/files/ja/web/api/timeranges/length/index.md @@ -0,0 +1,52 @@ +--- +title: TimeRanges.length +slug: Web/API/TimeRanges/length +tags: + - API + - HTML DOM + - Media + - Property + - Read-only + - Reference + - TimeRanges +translation_of: Web/API/TimeRanges/length +--- +{{APIRef("DOM")}} + +**`TimeRanges.length`** 読み取り専用プロパティは、オブジェクト内の範囲の数を返します。 + +## 構文 + + length = TimeRanges.length; + +## 例 + +ID が "myVideo" の動画要素がある場合、 + +```js +var v = document.GetElementById("myVideo"); + +var buf = v.buffered; + +var numRanges = buf.length; + +if (buf.length == 1) { + // 1つの範囲のみ + if (buf.start(0) == 0 && buf.end(0) == v.duration) { + // 1つの範囲が動画の最初から始まり、 + // 動画の最後で終わるため、すべてが読み込まれています + } +} +``` + +この例では、時間範囲を見て、動画全体が読み込まれたかどうかを確認します。 + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------------------------------------------- | -------------------------------- | -------- | +| {{SpecName("HTML WHATWG", "#dom-timeranges-length", "TimeRanges.length()")}} | {{Spec2("HTML WHATWG")}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.TimeRanges.length")}} diff --git a/files/ja/web/api/touch/clientx/index.html b/files/ja/web/api/touch/clientx/index.html deleted file mode 100644 index 6d0cbe27a8a35e..00000000000000 --- a/files/ja/web/api/touch/clientx/index.html +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: Touch.clientX -slug: Web/API/Touch/clientX -tags: - - API - - DOM - - Property - - Read-only - - Reference - - touch -translation_of: Web/API/Touch/clientX ---- -

{{ APIRef("Touch Events") }}

- -

Touch.clientY は読み取り専用プロパティで、タッチ点のビューポートからのスクロールオフセットは含まない相対 Y 座標を返します。

- -

構文

- -
touchItem.clientY;
- -

返値

- -

long 値で、タッチ点のビューポートからのスクロールオフセットは含まない相対 Y 座標を表します。

- -

- -

この例では、 {{domxref("Touch")}} オブジェクトの {{domxref("Touch.clientX")}} および {{domxref("Touch.clientY")}} プロパティを使用しています。 {{domxref("Touch.clientX")}} プロパティは、ブラウザーのビューポートを基準としたタッチ点の水平座標で、スクロールオフセットを除きます。 {{domxref("Touch.clientY")}} プロパティは、ブラウザーのビューポートを基準としたタッチポイントの垂直座標で、スクロールオフセットを除きます。

- -

この例では、 source という id の要素にタッチを開始し、要素内または要素外に移動した後、タッチ面から指を離したと仮定します。 {{domxref("Element/touchend_event", "touchend")}} のイベントハンドラーが呼び出されると、タッチ開始点から終了点までの {{domxref("Touch.clientX")}} 座標と {{domxref("Touch.clientY")}} 座標の変化が計算されます。

- -
// Register touchstart and touchend listeners for element 'source'
-var src = document.getElementById("source");
-var clientX, clientY;
-
-src.addEventListener('touchstart', function(e) {
-  // Cache the client X/Y coordinates
-  clientX = e.touches[0].clientX;
-  clientY = e.touches[0].clientY;
-}, false);
-
-src.addEventListener('touchend', function(e) {
-  var deltaX, deltaY;
-
-  // Compute the change in X and Y coordinates.
-  // The first touch point in the changedTouches
-  // list is the touch point that was just removed from the surface.
-  deltaX = e.changedTouches[0].clientX - clientX;
-  deltaY = e.changedTouches[0].clientY - clientY;
-
-  // Process the data ...
-}, false);
- -

仕様書

- - - - - - - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName('Touch Events 2','#dom-touch-clienty')}}{{Spec2('Touch Events 2')}}前の版から変更なし。
{{SpecName('Touch Events', '#widl-Touch-clientY')}}{{Spec2('Touch Events')}}初回定義
- -

ブラウザーの互換性

- -

{{Compat("api.Touch.clientY")}}

diff --git a/files/ja/web/api/touch/clientx/index.md b/files/ja/web/api/touch/clientx/index.md new file mode 100644 index 00000000000000..134c266edc8784 --- /dev/null +++ b/files/ja/web/api/touch/clientx/index.md @@ -0,0 +1,64 @@ +--- +title: Touch.clientX +slug: Web/API/Touch/clientX +tags: + - API + - DOM + - Property + - Read-only + - Reference + - touch +translation_of: Web/API/Touch/clientX +--- +{{ APIRef("Touch Events") }} + +**`Touch.clientY`** は読み取り専用プロパティで、タッチ点のビューポートからのスクロールオフセットは含まない相対 Y 座標を返します。 + +## 構文 + + touchItem.clientY; + +### 返値 + +`long` 値で、タッチ点のビューポートからのスクロールオフセットは含まない相対 Y 座標を表します。 + +## 例 + +この例では、 {{domxref("Touch")}} オブジェクトの {{domxref("Touch.clientX")}} および {{domxref("Touch.clientY")}} プロパティを使用しています。 {{domxref("Touch.clientX")}} プロパティは、ブラウザーのビューポートを基準としたタッチ点の水平座標で、スクロールオフセットを除きます。 {{domxref("Touch.clientY")}} プロパティは、ブラウザーのビューポートを基準としたタッチポイントの垂直座標で、スクロールオフセットを除きます。 + +この例では、 `source` という id の要素にタッチを開始し、要素内または要素外に移動した後、タッチ面から指を離したと仮定します。 {{domxref("Element/touchend_event", "touchend")}} のイベントハンドラーが呼び出されると、タッチ開始点から終了点までの {{domxref("Touch.clientX")}} 座標と {{domxref("Touch.clientY")}} 座標の変化が計算されます。 + +```js +// Register touchstart and touchend listeners for element 'source' +var src = document.getElementById("source"); +var clientX, clientY; + +src.addEventListener('touchstart', function(e) { + // Cache the client X/Y coordinates + clientX = e.touches[0].clientX; + clientY = e.touches[0].clientY; +}, false); + +src.addEventListener('touchend', function(e) { + var deltaX, deltaY; + + // Compute the change in X and Y coordinates. + // The first touch point in the changedTouches + // list is the touch point that was just removed from the surface. + deltaX = e.changedTouches[0].clientX - clientX; + deltaY = e.changedTouches[0].clientY - clientY; + + // Process the data ... +}, false); +``` + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| -------------------------------------------------------------------- | ------------------------------------ | -------------------- | +| {{SpecName('Touch Events 2','#dom-touch-clienty')}} | {{Spec2('Touch Events 2')}} | 前の版から変更なし。 | +| {{SpecName('Touch Events', '#widl-Touch-clientY')}} | {{Spec2('Touch Events')}} | 初回定義 | + +## ブラウザーの互換性 + +{{Compat("api.Touch.clientY")}} diff --git a/files/ja/web/api/touch/clienty/index.html b/files/ja/web/api/touch/clienty/index.html deleted file mode 100644 index 8b371fe05f057b..00000000000000 --- a/files/ja/web/api/touch/clienty/index.html +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: Touch.clientY -slug: Web/API/Touch/clientY -tags: - - API - - DOM - - Property - - Read-only - - Reference - - touch -translation_of: Web/API/Touch/clientY ---- -

{{ APIRef("Touch Events") }}

- -

Touch.clientY は読み取り専用プロパティで、タッチ点のビューポートからのスクロールオフセットは含まない相対 Y 座標を返します。

- -

構文

- -
touchItem.clientY;
- -

返値

- -

long 値で、タッチ点のビューポートからのスクロールオフセットは含まない相対 Y 座標を表します。

- -

- -

この例では、 {{domxref("Touch")}} オブジェクトの {{domxref("Touch.clientX")}} および {{domxref("Touch.clientY")}} プロパティを使用しています。 {{domxref("Touch.clientX")}} プロパティは、ブラウザーのビューポートを基準としたタッチ点の水平座標で、スクロールオフセットを除きます。 {{domxref("Touch.clientY")}} プロパティは、ブラウザーのビューポートを基準としたタッチポイントの垂直座標で、スクロールオフセットを除きます。

- -

この例では、 source という id の要素にタッチを開始し、要素内または要素外に移動した後、タッチ面から指を離したと仮定します。 {{domxref("Element/touchend_event", "touchend")}} のイベントハンドラーが呼び出されると、タッチ開始点から終了点までの {{domxref("Touch.clientX")}} 座標と {{domxref("Touch.clientY")}} 座標の変化が計算されます。

- -
// Register touchstart and touchend listeners for element 'source'
-var src = document.getElementById("source");
-var clientX, clientY;
-
-src.addEventListener('touchstart', function(e) {
-  // Cache the client X/Y coordinates
-  clientX = e.touches[0].clientX;
-  clientY = e.touches[0].clientY;
-}, false);
-
-src.addEventListener('touchend', function(e) {
-  var deltaX, deltaY;
-
-  // Compute the change in X and Y coordinates.
-  // The first touch point in the changedTouches
-  // list is the touch point that was just removed from the surface.
-  deltaX = e.changedTouches[0].clientX - clientX;
-  deltaY = e.changedTouches[0].clientY - clientY;
-
-  // Process the data ...
-}, false);
- -

仕様書

- - - - - - - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName('Touch Events 2','#dom-touch-clienty')}}{{Spec2('Touch Events 2')}}前の版から変更なし。
{{SpecName('Touch Events', '#widl-Touch-clientY')}}{{Spec2('Touch Events')}}初回定義
- -

ブラウザーの互換性

- -

{{Compat("api.Touch.clientY")}}

diff --git a/files/ja/web/api/touch/clienty/index.md b/files/ja/web/api/touch/clienty/index.md new file mode 100644 index 00000000000000..a81a33d0200ab2 --- /dev/null +++ b/files/ja/web/api/touch/clienty/index.md @@ -0,0 +1,64 @@ +--- +title: Touch.clientY +slug: Web/API/Touch/clientY +tags: + - API + - DOM + - Property + - Read-only + - Reference + - touch +translation_of: Web/API/Touch/clientY +--- +{{ APIRef("Touch Events") }} + +**`Touch.clientY`** は読み取り専用プロパティで、タッチ点のビューポートからのスクロールオフセットは含まない相対 Y 座標を返します。 + +## 構文 + + touchItem.clientY; + +### 返値 + +`long` 値で、タッチ点のビューポートからのスクロールオフセットは含まない相対 Y 座標を表します。 + +## 例 + +この例では、 {{domxref("Touch")}} オブジェクトの {{domxref("Touch.clientX")}} および {{domxref("Touch.clientY")}} プロパティを使用しています。 {{domxref("Touch.clientX")}} プロパティは、ブラウザーのビューポートを基準としたタッチ点の水平座標で、スクロールオフセットを除きます。 {{domxref("Touch.clientY")}} プロパティは、ブラウザーのビューポートを基準としたタッチポイントの垂直座標で、スクロールオフセットを除きます。 + +この例では、 `source` という id の要素にタッチを開始し、要素内または要素外に移動した後、タッチ面から指を離したと仮定します。 {{domxref("Element/touchend_event", "touchend")}} のイベントハンドラーが呼び出されると、タッチ開始点から終了点までの {{domxref("Touch.clientX")}} 座標と {{domxref("Touch.clientY")}} 座標の変化が計算されます。 + +```js +// Register touchstart and touchend listeners for element 'source' +var src = document.getElementById("source"); +var clientX, clientY; + +src.addEventListener('touchstart', function(e) { + // Cache the client X/Y coordinates + clientX = e.touches[0].clientX; + clientY = e.touches[0].clientY; +}, false); + +src.addEventListener('touchend', function(e) { + var deltaX, deltaY; + + // Compute the change in X and Y coordinates. + // The first touch point in the changedTouches + // list is the touch point that was just removed from the surface. + deltaX = e.changedTouches[0].clientX - clientX; + deltaY = e.changedTouches[0].clientY - clientY; + + // Process the data ... +}, false); +``` + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| -------------------------------------------------------------------- | ------------------------------------ | -------------------- | +| {{SpecName('Touch Events 2','#dom-touch-clienty')}} | {{Spec2('Touch Events 2')}} | 前の版から変更なし。 | +| {{SpecName('Touch Events', '#widl-Touch-clientY')}} | {{Spec2('Touch Events')}} | 初回定義 | + +## ブラウザーの互換性 + +{{Compat("api.Touch.clientY")}} diff --git a/files/ja/web/api/touch/identifier/index.html b/files/ja/web/api/touch/identifier/index.html deleted file mode 100644 index e2685d4470bba4..00000000000000 --- a/files/ja/web/api/touch/identifier/index.html +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: Touch.identifier -slug: Web/API/Touch/identifier -tags: - - API - - DOM - - Identifier - - Property - - Read-only - - Reference - - touch -translation_of: Web/API/Touch/identifier ---- -

{{ APIRef("Touch Events") }}{{SeeCompatTable}}

- -

Touch.identifier はタッチ面に接触した点を識別する固有の値を返します。この値は、タッチ面上でのこの指 (またはスタイラス) の動きに関わるすべてのイベントに対して、タッチ面から離れるまで一貫したものです。

- -

構文

- -
touchItem.identifier;
- -

返値

- -

long で、 {{ domxref("Touch") }} オブジェクトの固有の ID を表します。

- -

- -
someElement.addEventListener('touchmove', function(e) {
-// Iterate through the list of touch points that changed
-// since the last event and print each touch point's identifier.
-  for (var i=0; i < e.changedTouches.length; i++) {
-    console.log("changedTouches[" + i + "].identifier = " + e.changedTouches[i].identifier);
-  }
-}, false);
- -

仕様書

- - - - - - - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName('Touch Events 2','#dom-touch-identifier')}}{{Spec2('Touch Events 2')}}変更なし
{{SpecName('Touch Events', '#widl-Touch-identifier')}}{{Spec2('Touch Events')}}初回定義
- -

ブラウザーの互換性

- -

{{Compat("api.Touch.identifier")}}

diff --git a/files/ja/web/api/touch/identifier/index.md b/files/ja/web/api/touch/identifier/index.md new file mode 100644 index 00000000000000..1a1e5ff5140729 --- /dev/null +++ b/files/ja/web/api/touch/identifier/index.md @@ -0,0 +1,47 @@ +--- +title: Touch.identifier +slug: Web/API/Touch/identifier +tags: + - API + - DOM + - Identifier + - Property + - Read-only + - Reference + - touch +translation_of: Web/API/Touch/identifier +--- +{{ APIRef("Touch Events") }}{{SeeCompatTable}} + +**`Touch.identifier`** はタッチ面に接触した点を識別する固有の値を返します。この値は、タッチ面上でのこの指 (またはスタイラス) の動きに関わるすべてのイベントに対して、タッチ面から離れるまで一貫したものです。 + +## 構文 + + touchItem.identifier; + +### 返値 + +`long` で、 {{ domxref("Touch") }} オブジェクトの固有の ID を表します。 + +## 例 + +```js +someElement.addEventListener('touchmove', function(e) { +// Iterate through the list of touch points that changed +// since the last event and print each touch point's identifier. + for (var i=0; i < e.changedTouches.length; i++) { + console.log("changedTouches[" + i + "].identifier = " + e.changedTouches[i].identifier); + } +}, false); +``` + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| ------------------------------------------------------------------------ | ------------------------------------ | -------- | +| {{SpecName('Touch Events 2','#dom-touch-identifier')}} | {{Spec2('Touch Events 2')}} | 変更なし | +| {{SpecName('Touch Events', '#widl-Touch-identifier')}} | {{Spec2('Touch Events')}} | 初回定義 | + +## ブラウザーの互換性 + +{{Compat("api.Touch.identifier")}} diff --git a/files/ja/web/api/touch/index.html b/files/ja/web/api/touch/index.html deleted file mode 100644 index b8e96c9bb85f50..00000000000000 --- a/files/ja/web/api/touch/index.html +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: Touch -slug: Web/API/Touch -tags: - - API - - DOM - - Interface - - Reference - - TouchEvent - - touch -translation_of: Web/API/Touch ---- -

{{APIRef("Touch Events")}}

- -

Touch インターフェイスは、タッチ感応面へのひとつの接触点を表します。接触点とは一般的に指やスタイラスと、タッチ画面やトラックパッドのような機器が触れた位置です。

- -

{{domxref("Touch.radiusX")}}、{{domxref("Touch.radiusY")}}、{{domxref("Touch.rotationAngle")}} で、ユーザーと画面が接触したタッチ領域 (touch area) を表します。これは指を使うような、精度が低いポインティングデバイスを扱う場合に役立ちます。これらの値は、接触した領域全体 (ユーザの指先など) に可能な限り合う楕円を表すように設定されます。 {{experimental_inline}}

- -
-

注: プロパティの値の多くは、ハードウェア依存です。例えば、表面を押さえる力を検出する手段を持たない機器では、force の値が常に 0 になるでしょう。これは radiusXradiusY にもあてはまります。ハードウェアがひとつの点しか通知できない場合は、これらの値が 1 になるでしょう。

-
- -

コンストラクター

- -
-
{{domxref("Touch.Touch", "Touch()")}} {{experimental_inline}}
-
Touch オブジェクトを作成します。
-
- -

プロパティ

- -

このインターフェイスには親がなく、ほかのプロパティを継承または実装していません。

- -

基本プロパティ

- -
-
{{domxref("Touch.identifier")}} {{readonlyInline}}
-
Touch オブジェクトの一意な識別子を返します。あるタッチ点 (指などによる) は表面を移動している間、同じ識別子を持ち続けます。これにより、同一のタッチを終始追跡することが確実になります。
-
{{domxref("Touch.screenX")}} {{readonlyInline}}
-
画面の左端に対する、タッチ点の X 座標を返します。
-
{{domxref("Touch.screenY")}} {{readonlyInline}}
-
画面の上端に対する、タッチ点の Y 座標を返します。
-
{{domxref("Touch.clientX")}} {{readonlyInline}}
-
スクロールによるオフセットを含まず、ブラウザのビューポートの左端に対する、タッチ点の X 座標を返します。
-
{{domxref("Touch.clientY")}} {{readonlyInline}}
-
スクロールによるオフセットを含まず、ブラウザのビューポートの上端に対する、タッチ点の Y 座標を返します。
-
{{domxref("Touch.pageX")}} {{readonlyInline}}
-
ドキュメントの左端に対する、タッチ点の X 座標を返します。水平スクロールによるオフセットがある場合は、それを含むことが clientX と異なります。
-
{{domxref("Touch.pageY")}} {{readonlyInline}}
-
ドキュメントの上端に対する、タッチ点の Y 座標を返します。垂直スクロールによるオフセットがある場合は、それを含むことが clientY と異なります。
-
{{domxref("Touch.target")}} {{readonlyInline}}
-
タッチ点がタッチ面で最初に触れた位置にある {{domxref("Element")}} を返します。タッチ点が要素の対話エリアの外に移動したり、ドキュメント上に存在しなくなっても同様です。
-
- -

タッチ領域

- -

{{SeeCompatTable}}

- -
-
{{domxref("Touch.radiusX")}} {{readonlyInline}} {{experimental_inline}}
-
画面に触れた領域にもっとも接近して囲むような、楕円の X 方向の半径を返します。この値は、screenX と同じ尺度のピクセル数で表します。
-
{{domxref("Touch.radiusY")}} {{readonlyInline}} {{experimental_inline}}
-
画面に触れた領域にもっとも接近して囲むような、楕円の Y 方向の半径を返します。この値は、screenY と同じ尺度のピクセル数で表します。
-
{{domxref("Touch.rotationAngle")}} {{readonlyInline}} {{experimental_inline}}
-
ユーザがタッチ面に触れた領域をもっとも正確に覆うために、radiusX および radiusY で表す楕円を時計回りに回転すべき角度 (単位は度 (degree)) を返します。
-
{{domxref("Touch.force")}}{{readonlyInline}} {{experimental_inline}}
-
ユーザがタッチ面に与えた圧力を、0.0 (最小圧力) から 1.0 (最大圧力) の間の float で返します。
-
- -

メソッド

- -

このインターフェイスにはメソッドがなく、親もないのでメソッドを継承または実装していません。

- -

仕様書

- - - - - - - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName('Touch Events 2', '#touch-interface', 'Touch')}}{{Spec2('Touch Events 2')}}radiusX, radiusY, rotationAngle, force の各プロパティと Touch() コンストラクターを追加。
{{SpecName('Touch Events', '#touch-interface', 'Touch')}}{{Spec2('Touch Events')}}初回定義
- -

ブラウザーの互換性

- -
-

{{Compat("api.Touch")}}

-
- -

関連情報

- - diff --git a/files/ja/web/api/touch/index.md b/files/ja/web/api/touch/index.md new file mode 100644 index 00000000000000..497904d09c400f --- /dev/null +++ b/files/ja/web/api/touch/index.md @@ -0,0 +1,80 @@ +--- +title: Touch +slug: Web/API/Touch +tags: + - API + - DOM + - Interface + - Reference + - TouchEvent + - touch +translation_of: Web/API/Touch +--- +{{APIRef("Touch Events")}} + +**`Touch`** インターフェイスは、タッチ感応面へのひとつの接触点を表します。接触点とは一般的に指やスタイラスと、タッチ画面やトラックパッドのような機器が触れた位置です。 + +{{domxref("Touch.radiusX")}}、{{domxref("Touch.radiusY")}}、{{domxref("Touch.rotationAngle")}} で、ユーザーと画面が接触した*タッチ領域 (touch area)* を表します。これは指を使うような、精度が低いポインティングデバイスを扱う場合に役立ちます。これらの値は、接触した領域全体 (ユーザの指先など) に可能な限り合う楕円を表すように設定されます。 {{experimental_inline}} + +> **Note:** **注:** プロパティの値の多くは、ハードウェア依存です。例えば、表面を押さえる力を検出する手段を持たない機器では、`force` の値が常に 0 になるでしょう。これは `radiusX` や `radiusY` にもあてはまります。ハードウェアがひとつの点しか通知できない場合は、これらの値が 1 になるでしょう。 + +## コンストラクター + +- {{domxref("Touch.Touch", "Touch()")}} {{experimental_inline}} + - : Touch オブジェクトを作成します。 + +## プロパティ + +_このインターフェイスには親がなく、ほかのプロパティを継承または実装していません。_ + +### 基本プロパティ + +- {{domxref("Touch.identifier")}} {{readonlyInline}} + - : `Touch` オブジェクトの一意な識別子を返します。あるタッチ点 (指などによる) は表面を移動している間、同じ識別子を持ち続けます。これにより、同一のタッチを終始追跡することが確実になります。 +- {{domxref("Touch.screenX")}} {{readonlyInline}} + - : 画面の左端に対する、タッチ点の X 座標を返します。 +- {{domxref("Touch.screenY")}} {{readonlyInline}} + - : 画面の上端に対する、タッチ点の Y 座標を返します。 +- {{domxref("Touch.clientX")}} {{readonlyInline}} + - : スクロールによるオフセットを含まず、ブラウザのビューポートの左端に対する、タッチ点の X 座標を返します。 +- {{domxref("Touch.clientY")}} {{readonlyInline}} + - : スクロールによるオフセットを含まず、ブラウザのビューポートの上端に対する、タッチ点の Y 座標を返します。 +- {{domxref("Touch.pageX")}} {{readonlyInline}} + - : ドキュメントの左端に対する、タッチ点の X 座標を返します。水平スクロールによるオフセットがある場合は、それを含むことが `clientX` と異なります。 +- {{domxref("Touch.pageY")}} {{readonlyInline}} + - : ドキュメントの上端に対する、タッチ点の Y 座標を返します。垂直スクロールによるオフセットがある場合は、それを含むことが `clientY` と異なります。 +- {{domxref("Touch.target")}} {{readonlyInline}} + - : タッチ点がタッチ面で最初に触れた位置にある {{domxref("Element")}} を返します。タッチ点が要素の対話エリアの外に移動したり、ドキュメント上に存在しなくなっても同様です。 + +### タッチ領域 + +{{SeeCompatTable}} + +- {{domxref("Touch.radiusX")}} {{readonlyInline}} {{experimental_inline}} + - : 画面に触れた領域にもっとも接近して囲むような、楕円の X 方向の半径を返します。この値は、`screenX` と同じ尺度のピクセル数で表します。 +- {{domxref("Touch.radiusY")}} {{readonlyInline}} {{experimental_inline}} + - : 画面に触れた領域にもっとも接近して囲むような、楕円の Y 方向の半径を返します。この値は、`screenY` と同じ尺度のピクセル数で表します。 +- {{domxref("Touch.rotationAngle")}} {{readonlyInline}} {{experimental_inline}} + - : ユーザがタッチ面に触れた領域をもっとも正確に覆うために、radiusX および radiusY で表す楕円を時計回りに回転すべき角度 (単位は度 (degree)) を返します。 +- {{domxref("Touch.force")}}{{readonlyInline}} {{experimental_inline}} + - : ユーザがタッチ面に与えた圧力を、`0.0` (最小圧力) から `1.0` (最大圧力) の間の `float` で返します。 + +## メソッド + +_このインターフェイスにはメソッドがなく、親もないのでメソッドを継承または実装していません。_ + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| -------------------------------------------------------------------------------- | ------------------------------------ | -------------------------------------------------------------------------------------------------- | +| {{SpecName('Touch Events 2', '#touch-interface', 'Touch')}} | {{Spec2('Touch Events 2')}} | `radiusX`, `radiusY`, `rotationAngle`, `force` の各プロパティと `Touch()` コンストラクターを追加。 | +| {{SpecName('Touch Events', '#touch-interface', 'Touch')}} | {{Spec2('Touch Events')}} | 初回定義 | + +## ブラウザーの互換性 + +{{Compat("api.Touch")}} + +## 関連情報 + +- [タッチイベント](/ja/docs/Web/API/Touch_events) +- {{ domxref("Document.createTouch()") }} diff --git a/files/ja/web/api/touch/screeny/index.html b/files/ja/web/api/touch/screeny/index.html deleted file mode 100644 index 6f5660ae704d75..00000000000000 --- a/files/ja/web/api/touch/screeny/index.html +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: Touch.screenY -slug: Web/API/Touch/screenY -tags: - - API - - DOM - - Mobile - - Property - - touch -translation_of: Web/API/Touch/screenY ---- -

{{ APIRef("Touch Events") }}

- -

概要

- -

画面を基準としたタッチポイントの Y 座標を返します。スクロールオフセットは含まれません。

- -

構文

- -
var y = touchItem.screenY;
-
- -

返り値

- -
-
y
-
画面を基準としたタッチポイントの Y 座標。スクロールオフセットは含まれません。
-
- -

- -

Touch.screenX の例には、このプロパティの使用例が含まれています。

- -

仕様

- - - - - - - - - - - - - - - - - - - -
仕様ステータス備考
{{SpecName('Touch Events 2','#dom-touch-screeny')}}{{Spec2('Touch Events 2')}}前の版から変更なし。
{{SpecName('Touch Events', '#widl-Touch-screenY')}}{{Spec2('Touch Events')}}初回定義。
- -

ブラウザー実装状況

- - - -

{{Compat("api.Touch.screenY")}}

diff --git a/files/ja/web/api/touch/screeny/index.md b/files/ja/web/api/touch/screeny/index.md new file mode 100644 index 00000000000000..1c1d72f6d22548 --- /dev/null +++ b/files/ja/web/api/touch/screeny/index.md @@ -0,0 +1,40 @@ +--- +title: Touch.screenY +slug: Web/API/Touch/screenY +tags: + - API + - DOM + - Mobile + - Property + - touch +translation_of: Web/API/Touch/screenY +--- +{{ APIRef("Touch Events") }} + +## 概要 + +画面を基準としたタッチポイントの Y 座標を返します。スクロールオフセットは含まれません。 + +## 構文 + + var y = touchItem.screenY; + +### 返り値 + +- `y` + - : 画面を基準としたタッチポイントの Y 座標。スクロールオフセットは含まれません。 + +## 例 + +[Touch.screenX の例](/ja/docs/Web/API/Touch/screenX#Example)には、このプロパティの使用例が含まれています。 + +## 仕様 + +| 仕様 | ステータス | 備考 | +| -------------------------------------------------------------------- | ------------------------------------ | -------------------- | +| {{SpecName('Touch Events 2','#dom-touch-screeny')}} | {{Spec2('Touch Events 2')}} | 前の版から変更なし。 | +| {{SpecName('Touch Events', '#widl-Touch-screenY')}} | {{Spec2('Touch Events')}} | 初回定義。 | + +## ブラウザー実装状況 + +{{Compat("api.Touch.screenY")}} diff --git a/files/ja/web/api/touch_events/index.html b/files/ja/web/api/touch_events/index.html deleted file mode 100644 index 004dc8fc619114..00000000000000 --- a/files/ja/web/api/touch_events/index.html +++ /dev/null @@ -1,343 +0,0 @@ ---- -title: タッチイベント -slug: Web/API/Touch_events -tags: - - Advanced - - DOM - - Event - - Guide - - Mobile - - Overview - - touch - - イベント - - タッチ - - 概要 -translation_of: Web/API/Touch_events ---- -

{{DefaultAPISidebar("Touch Events")}}

- -

タッチベースのユーザーインターフェイスを高度にサポートするため、端末やトラックパッドでの指 (あるいはスタイラス) の動きを解釈する機能を、タッチイベントが提供します。

- -

タッチイベントのインターフェイスは、2 本の指によるジェスチャーなどアプリケーション固有のマルチタッチ操作に対応するために使用できる、比較的低レベルの API です。マルチタッチ操作は、1 本の指 (またはスタイラス) が始めにタッチ面へタッチしたときから始まります。その後に他の指をタッチすることができ、さらに任意でサーフェス上で動かします。指をサーフェスから離すと、操作が終了します。操作している間、アプリケーションは開始・移動・終了の各段階中にタッチイベントを受け取ります。

- -

タッチイベントはマウスイベントに似ていますが、タッチサーフェス上の異なる場所で同時に発生するタッチに対応することが異なります。{{domxref("TouchEvent")}} インターフェイスは、現在アクティブなすべてのタッチ箇所を包含します。{{domxref("Touch")}} インターフェイスはひとつのタッチ箇所を表し、ブラウザのビューポートを基準にしたタッチ個所の位置などの情報を含みます。

- -

定義

- -
-
タッチ面
-
タッチに反応する面。画面であったりトラックパッドであったりする可能性があります。
-
- -
-
タッチ箇所
-
タッチ面に接触した点。これは指 (あるいはひじ、耳、鼻などでもよいのですが、たいてい指でしょう) またはスタイラスでしょう。
-
- -

インターフェイス

- -
-
{{domxref("TouchEvent")}}
-
タッチ面でタッチ状態が変化したときに発生するイベントを表します。
-
{{domxref("Touch")}}
-
ユーザーとタッチタッチ面が接した点 1 個を表します。
-
{{domxref("TouchList")}}
-
タッチのグループを表します。例えば、ユーザーが複数の指を同時にタッチ面上に置いた場合に使用します。
-
- -

- -

ここでは一度に複数のタッチ箇所を取得しており、ユーザーが一度に複数の指で {{HTMLElement("canvas")}} に描くことができるようになっています。このサンプルはタッチイベントに対応するブラウザーのみで動作します。

- -
注: ここからはタッチ面への接触を表すときに "指" という表現を使用しますが、当然ながらスタイラスなど他の接触法も使用できます。
- -

canvas を生成する

- -
<canvas id="canvas" width="600" height="600" style="border:solid black 1px;">
-  Your browser does not support canvas element.
-</canvas>
-<br>
-Log: <pre id="log" style="border: 1px solid #ccc;"></pre>
-
- -

イベントハンドラーの設定

- -

ページを読み込むとき、以下の startup() 関数が呼び出されます。

- -
function startup() {
-  var el = document.getElementById("canvas");
-  el.addEventListener("touchstart", handleStart, false);
-  el.addEventListener("touchend", handleEnd, false);
-  el.addEventListener("touchcancel", handleCancel, false);
-  el.addEventListener("touchmove", handleMove, false);
-}
-
-document.addEventListener("DOMContentLoaded", startup);
- -

これは単に {{HTMLElement("canvas")}} 要素へすべてのイベントリスナーを設定している関数であり、タッチイベントの発生に応じて扱うことができるようになります。

- -

新たなタッチの追跡

- -

進行中のタッチを追跡し続けます。

- -
var ongoingTouches = [];
-
- -

タッチ面上で新たなタッチが発生したことを示す {{Event("touchstart")}} イベントが発生すると、handleStart() 関数を呼び出します。

- -
function handleStart(evt) {
-  evt.preventDefault();
-  console.log("touchstart.");
-  var el = document.getElementById("canvas");
-  var ctx = el.getContext("2d");
-  var touches = evt.changedTouches;
-
-  for (var i = 0; i < touches.length; i++) {
-    console.log("touchstart:" + i + "...");
-    ongoingTouches.push(copyTouch(touches[i]));
-    var color = colorForTouch(touches[i]);
-    ctx.beginPath();
-    ctx.arc(touches[i].pageX, touches[i].pageY, 4, 0, 2 * Math.PI, false);  // a circle at the start
-    ctx.fillStyle = color;
-    ctx.fill();
-    console.log("touchstart:" + i + ".");
-  }
-}
-
- -

ここでは、ブラウザーがタッチイベントの処理を続けないようにするため {{domxref("event.preventDefault()")}} を呼び出します (また、マウスイベントの伝達も抑止します)。そしてコンテキストを取得して、イベントの {{domxref("TouchEvent.changedTouches")}} プロパティから変化したタッチ箇所のリストを取り込みます。

- -

その後に、リスト内のすべての {{domxref("Touch")}} オブジェクトを走査してアクティブなタッチ箇所の配列に送り込み、描画を開始する位置に小さな丸印を描画します。この例では 4 ピクセル幅の線を使用しますので、半径 4 ピクセルの円がきれいに見えます。

- -

タッチの移動に合わせた描画

- -

1 本以上の指が移動するたびに {{domxref("Element/touchmove_event", "touchmove")}} イベントが発生しますので、その結果 handleMove() 関数が呼び出されます。これはキャッシュしたタッチ情報を更新して、タッチごとに以前の位置から現在の位置まで線を描画する役割を担っています。

- -
function handleMove(evt) {
-  evt.preventDefault();
-  var el = document.getElementById("canvas");
-  var ctx = el.getContext("2d");
-  var touches = evt.changedTouches;
-
-  for (var i = 0; i < touches.length; i++) {
-    var color = colorForTouch(touches[i]);
-    var idx = ongoingTouchIndexById(touches[i].identifier);
-
-    if (idx >= 0) {
-      console.log("continuing touch "+idx);
-      ctx.beginPath();
-      console.log("ctx.moveTo(" + ongoingTouches[idx].pageX + ", " + ongoingTouches[idx].pageY + ");");
-      ctx.moveTo(ongoingTouches[idx].pageX, ongoingTouches[idx].pageY);
-      console.log("ctx.lineTo(" + touches[i].pageX + ", " + touches[i].pageY + ");");
-      ctx.lineTo(touches[i].pageX, touches[i].pageY);
-      ctx.lineWidth = 4;
-      ctx.strokeStyle = color;
-      ctx.stroke();
-
-      ongoingTouches.splice(idx, 1, copyTouch(touches[i]));  // swap in the new touch record
-      console.log(".");
-    } else {
-      console.log("can't figure out which touch to continue");
-    }
-  }
-}
-
- -

これは同様に変更されたタッチに対して走査していますが、各タッチで新たに描画する線分の開始点を検出するために、各タッチの以前の情報についてキャッシュしたタッチ情報の配列を参照しています。これは、各タッチの {{domxref("Touch.identifier")}} プロパティを確認して行います。このプロパティは各タッチで一意の識別子であり、指とタッチ面との接触が続いている間、値が固定されます。

- -

これにより各タッチの前の位置の座標を取得して、2 つの点を結ぶ線分を描画するために適切なコンテキストメソッドを使用できます。

- -

線分を描画した後、前のタッチ箇所の情報を ongoingTouches 配列内にある現在の情報に置き換えるため、Array.splice() を呼び出します。

- -

タッチの終了を制御する

- -

ユーザーがタッチ面から指を離すと {{domxref("Element/touchend_event", "touchend")}} イベントが発生します。私たちはこれらの両方を、以下の handleEnd() 関数を呼び出すというひとつの方法で扱います。この関数の役割は、終了したタッチについて最後の線分を描画することと、継続中のタッチのリストからタッチ箇所を削除することです。

- -
function handleEnd(evt) {
-  evt.preventDefault();
-  log("touchend");
-  var el = document.getElementById("canvas");
-  var ctx = el.getContext("2d");
-  var touches = evt.changedTouches;
-
-  for (var i = 0; i < touches.length; i++) {
-    var color = colorForTouch(touches[i]);
-    var idx = ongoingTouchIndexById(touches[i].identifier);
-
-    if (idx >= 0) {
-      ctx.lineWidth = 4;
-      ctx.fillStyle = color;
-      ctx.beginPath();
-      ctx.moveTo(ongoingTouches[idx].pageX, ongoingTouches[idx].pageY);
-      ctx.lineTo(touches[i].pageX, touches[i].pageY);
-      ctx.fillRect(touches[i].pageX - 4, touches[i].pageY - 4, 8, 8);  // and a square at the end
-      ongoingTouches.splice(idx, 1);  // remove it; we're done
-    } else {
-      console.log("can't figure out which touch to end");
-    }
-  }
-}
-
- -

これは前の関数にとても似ていますが、終端を表す小さな四角形を描画することと、Array.splice() を呼び出して、更新後の情報を追加せずに継続中のタッチリストから古い項目を削除することが異なります。この結果、タッチ箇所の追跡を停止します。

- -

取り消されたタッチを制御する

- -

ユーザーの指がブラウザーの UI に入り込んだり、その他にタッチをキャンセルしなければならないときには {{domxref("Element/touchcancel_event", "touchcancel")}} イベントが発生して、以下の handleCancel() 関数が実行されます。

- -
function handleCancel(evt) {
-  evt.preventDefault();
-  console.log("touchcancel.");
-  var touches = evt.changedTouches;
-
-  for (var i = 0; i < touches.length; i++) {
-    var idx = ongoingTouchIndexById(touches[i].identifier);
-    ongoingTouches.splice(idx, 1);  // remove it; we're done
-  }
-}
-
- -

即座にタッチを取り消すという考え方から最終の線分を描画せずに、継続中のタッチリストから単純にタッチを削除します。

- -

便利な関数

- -

この例ではコードの残りの部分をより明確にすることを助ける、簡単に見ておくべきである 2 つの便利な関数を使用しています。

- -

それぞれのタッチの色を選択する

- -

それぞれのタッチの外見を区別して描画するために、タッチの一意な識別子を元に色を選択する colorForTouch() 関数を使用します。この識別子は不明瞭な数値ですが、少なくとも現在アクティブなタッチを区別することはできます。

- -
function colorForTouch(touch) {
-  var r = touch.identifier % 16;
-  var g = Math.floor(touch.identifier / 3) % 16;
-  var b = Math.floor(touch.identifier / 7) % 16;
-  r = r.toString(16); // make it a hex digit
-  g = g.toString(16); // make it a hex digit
-  b = b.toString(16); // make it a hex digit
-  var color = "#" + r + g + b;
-  console.log("color for touch with identifier " + touch.identifier + " = " + color);
-  return color;
-}
-
- -

この関数の返値は、描画色を設定するために {{HTMLElement("canvas")}} 関数を呼び出すときに使用できる文字列です。例えば {{domxref("Touch.identifier")}} の値が 10 であれば、戻り値は文字列 "#aaa" になります。

- -

touch オブジェクトのコピー

- -

一部のブラウザー (例えばモバイル版 Safari) はイベント間で touch オブジェクトを再使用するため、オブジェクト全体を参照するよりも、関心がある部分をコピーするほうが最善です。

- -
function copyTouch({ identifier, pageX, pageY }) {
-  return { identifier, pageX, pageY };
-}
- -

継続中のタッチを発見する

- -

以下の ongoingTouchIndexById() 関数は、指定した識別にマッチするタッチを見つけるために配列 ongoingTouches を探索して、そのタッチの配列内における添字を返します。

- -
function ongoingTouchIndexById(idToFind) {
-  for (var i = 0; i < ongoingTouches.length; i++) {
-    var id = ongoingTouches[i].identifier;
-
-    if (id == idToFind) {
-      return i;
-    }
-  }
-  return -1;    // not found
-}
-
- -

何を行っているか表示する

- -
function log(msg) {
-  var p = document.getElementById('log');
-  p.innerHTML = msg + "\n" + p.innerHTML;
-}
- -

ブラウザーが対応していれば、{{LiveSampleLink('Example', '実際に試す')}} ことができます。

- -

jsFiddle example

- -

追加の豆知識

- -

この章ではウェブアプリケーションでタッチイベントを扱う方法について、追加の豆知識を紹介します。

- -

クリックを制御する

- -

{{event("touchstart")}} あるいは一連の中で最初の {{domxref("Element/touchmove_event", "touchmove")}} で preventDefault() を呼び出すと対応するマウスイベントの発生を抑制できるため、 touchstart よりも touchmovepreventDefault() を呼び出すことが一般的です。この方法では従来どおりマウスイベントが発生して、リンクなどが引き続き動作します。代わりに一部のフレームワークでは同様の目的で、タッチイベントをマウスイベントとして再発生させています。(この例は過度に単純化しており、奇妙な動作になるかもしれません。ガイドとして掲載しているに過ぎません。)

- -
function onTouch(evt) {
-  evt.preventDefault();
-  if (evt.touches.length > 1 || (evt.type == "touchend" && evt.touches.length > 0))
-    return;
-
-  var newEvt = document.createEvent("MouseEvents");
-  var type = null;
-  var touch = null;
-
-  switch (evt.type) {
-    case "touchstart":
-      type = "mousedown";
-      touch = evt.changedTouches[0];
-      break;
-    case "touchmove":
-      type = "mousemove";
-      touch = evt.changedTouches[0];
-      break;
-    case "touchend":
-      type = "mouseup";
-      touch = evt.changedTouches[0];
-      break;
-  }
-
-  newEvt.initMouseEvent(type, true, true, evt.originalTarget.ownerDocument.defaultView, 0,
-    touch.screenX, touch.screenY, touch.clientX, touch.clientY,
-    evt.ctrlKey, evt.altKey, evt.shiftKey, evt.metaKey, 0, null);
-  evt.originalTarget.dispatchEvent(newEvt);
-}
-
- -

2 番目のタッチのみで preventDefault() を呼び出す

- -

ページ上で pinchZoom と言った操作を防ぐテクニックのひとつとして、一連のタッチの 2 番目で preventDefault() を呼び出す方法があります。この動作はタッチイベントの仕様書で明示されておらず、ブラウザーによって結果が異なります (iOS ではズームを防ぎますが、パンは可能です。Android はズームが可能ですが、パンはできません。Opera および Firefox は現状、パンもズームも防ぎます)。現在、このケースで特定の動作に依存することは推奨されず、メタビューポートのズームを防ぐと考えてください。

- -

仕様書

- - - - - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName('Touch Events 2', '#touch-interface', 'Touch')}}{{Spec2('Touch Events 2')}}radiusX, radiusY, rotationAngle, force プロパティを追加。
{{SpecName('Touch Events', '#touch-interface', 'Touch')}}{{Spec2('Touch Events')}}初回定義
- -

ブラウザーの互換性

- -

Touch

- -

タッチイベントは通常、タッチ画面を備えた端末で使用できますが、多くのブラウザーは、タッチ画面を備えたものであっても、すべてのデスクトップ端末でタッチイベント API をできないようにしています。

- -

これは、一部のウェブサイトで、タッチイベント API の一部が利用できることが、ブラウザーがモバイル端末で実行されていることを示す指標として使用されているためです。タッチイベント API が利用可能な場合、これらのウェブサイトはモバイル端末を想定し、モバイルに最適化されたコンテンツを配信します。その結果、タッチ画面を搭載したデスクトップ端末のユーザーにとっては、使い勝手が悪くなる可能性があります。

- -

すべての種類の端末でタッチとマウスの両方に対応するには、代わりにポインターイベントを使用してください。

- -

{{Compat("api.Touch")}}

- -

Firefox のタッチイベントとマルチプロセス (e10s)

- -

Firefox では、 e10s (electrolysis; multiprocess Firefox) が無効になっていると、タッチイベントは無効になります。 Firefox では e10s が既定ででオンになっていますが、 e10s が機能しないようにする必要がある特定のアクセシビリティツールや Firefox アドオンがインストールされている場合など、特定の状況で無効になることがあります。つまり、タッチ画面対応のデスクトップ/ノートパソコンでも、タッチイベントは有効になりません。

- -

e10s が無効になっているかどうかをテストするには、 about:support に移動し、 "Application Basics" セクションの "Multiprocess Windows" エントリを調べます。 1/1 は有効、 0/1 は無効を意味します。

- -

タッチイベントの対応を明示的に再度有効にするために e10s を強制的にオンにしたい場合は、 about:config に移動して新しいブール設定 browser.tabs.remote.force-enable を作成する必要があります。 true に設定してブラウザーを再起動すると、他の設定に関係なく e10s が有効になります。

diff --git a/files/ja/web/api/touch_events/index.md b/files/ja/web/api/touch_events/index.md new file mode 100644 index 00000000000000..040faa7fea70ed --- /dev/null +++ b/files/ja/web/api/touch_events/index.md @@ -0,0 +1,339 @@ +--- +title: タッチイベント +slug: Web/API/Touch_events +tags: + - Advanced + - DOM + - Event + - Guide + - Mobile + - Overview + - touch + - イベント + - タッチ + - 概要 +translation_of: Web/API/Touch_events +--- +{{DefaultAPISidebar("Touch Events")}} + +タッチベースのユーザーインターフェイスを高度にサポートするため、端末やトラックパッドでの指 (あるいはスタイラス) の動きを解釈する機能を、タッチイベントが提供します。 + +タッチイベントのインターフェイスは、2 本の指によるジェスチャーなどアプリケーション固有のマルチタッチ操作に対応するために使用できる、比較的低レベルの API です。マルチタッチ操作は、1 本の指 (またはスタイラス) が始めにタッチ面へタッチしたときから始まります。その後に他の指をタッチすることができ、さらに任意でサーフェス上で動かします。指をサーフェスから離すと、操作が終了します。操作している間、アプリケーションは開始・移動・終了の各段階中にタッチイベントを受け取ります。 + +タッチイベントはマウスイベントに似ていますが、タッチサーフェス上の異なる場所で同時に発生するタッチに対応することが異なります。{{domxref("TouchEvent")}} インターフェイスは、現在アクティブなすべてのタッチ箇所を包含します。{{domxref("Touch")}} インターフェイスはひとつのタッチ箇所を表し、ブラウザのビューポートを基準にしたタッチ個所の位置などの情報を含みます。 + +## 定義 + +- タッチ面 + - : タッチに反応する面。画面であったりトラックパッドであったりする可能性があります。 + + + +- タッチ箇所 + - : タッチ面に接触した点。これは指 (あるいはひじ、耳、鼻などでもよいのですが、たいてい指でしょう) またはスタイラスでしょう。 + +## インターフェイス + +- {{domxref("TouchEvent")}} + - : タッチ面でタッチ状態が変化したときに発生するイベントを表します。 +- {{domxref("Touch")}} + - : ユーザーとタッチタッチ面が接した点 1 個を表します。 +- {{domxref("TouchList")}} + - : タッチのグループを表します。例えば、ユーザーが複数の指を同時にタッチ面上に置いた場合に使用します。 + +## 例 + +ここでは一度に複数のタッチ箇所を取得しており、ユーザーが一度に複数の指で {{HTMLElement("canvas")}} に描くことができるようになっています。このサンプルはタッチイベントに対応するブラウザーのみで動作します。 + +> **Note:** **注:** ここからはタッチ面への接触を表すときに "指" という表現を使用しますが、当然ながらスタイラスなど他の接触法も使用できます。 + +### canvas を生成する + +```html + + Your browser does not support canvas element. + +
+Log:

+```
+
+### イベントハンドラーの設定
+
+ページを読み込むとき、以下の `startup()` 関数が呼び出されます。
+
+```js
+function startup() {
+  var el = document.getElementById("canvas");
+  el.addEventListener("touchstart", handleStart, false);
+  el.addEventListener("touchend", handleEnd, false);
+  el.addEventListener("touchcancel", handleCancel, false);
+  el.addEventListener("touchmove", handleMove, false);
+}
+
+document.addEventListener("DOMContentLoaded", startup);
+```
+
+これは単に {{HTMLElement("canvas")}} 要素へすべてのイベントリスナーを設定している関数であり、タッチイベントの発生に応じて扱うことができるようになります。
+
+#### 新たなタッチの追跡
+
+進行中のタッチを追跡し続けます。
+
+```js
+var ongoingTouches = [];
+```
+
+タッチ面上で新たなタッチが発生したことを示す {{Event("touchstart")}} イベントが発生すると、`handleStart()` 関数を呼び出します。
+
+```js
+function handleStart(evt) {
+  evt.preventDefault();
+  console.log("touchstart.");
+  var el = document.getElementById("canvas");
+  var ctx = el.getContext("2d");
+  var touches = evt.changedTouches;
+
+  for (var i = 0; i < touches.length; i++) {
+    console.log("touchstart:" + i + "...");
+    ongoingTouches.push(copyTouch(touches[i]));
+    var color = colorForTouch(touches[i]);
+    ctx.beginPath();
+    ctx.arc(touches[i].pageX, touches[i].pageY, 4, 0, 2 * Math.PI, false);  // a circle at the start
+    ctx.fillStyle = color;
+    ctx.fill();
+    console.log("touchstart:" + i + ".");
+  }
+}
+```
+
+ここでは、ブラウザーがタッチイベントの処理を続けないようにするため {{domxref("event.preventDefault()")}} を呼び出します (また、マウスイベントの伝達も抑止します)。そしてコンテキストを取得して、イベントの {{domxref("TouchEvent.changedTouches")}} プロパティから変化したタッチ箇所のリストを取り込みます。
+
+その後に、リスト内のすべての {{domxref("Touch")}} オブジェクトを走査してアクティブなタッチ箇所の配列に送り込み、描画を開始する位置に小さな丸印を描画します。この例では 4 ピクセル幅の線を使用しますので、半径 4 ピクセルの円がきれいに見えます。
+
+#### タッチの移動に合わせた描画
+
+1 本以上の指が移動するたびに {{domxref("Element/touchmove_event", "touchmove")}} イベントが発生しますので、その結果 `handleMove()` 関数が呼び出されます。これはキャッシュしたタッチ情報を更新して、タッチごとに以前の位置から現在の位置まで線を描画する役割を担っています。
+
+```js
+function handleMove(evt) {
+  evt.preventDefault();
+  var el = document.getElementById("canvas");
+  var ctx = el.getContext("2d");
+  var touches = evt.changedTouches;
+
+  for (var i = 0; i < touches.length; i++) {
+    var color = colorForTouch(touches[i]);
+    var idx = ongoingTouchIndexById(touches[i].identifier);
+
+    if (idx >= 0) {
+      console.log("continuing touch "+idx);
+      ctx.beginPath();
+      console.log("ctx.moveTo(" + ongoingTouches[idx].pageX + ", " + ongoingTouches[idx].pageY + ");");
+      ctx.moveTo(ongoingTouches[idx].pageX, ongoingTouches[idx].pageY);
+      console.log("ctx.lineTo(" + touches[i].pageX + ", " + touches[i].pageY + ");");
+      ctx.lineTo(touches[i].pageX, touches[i].pageY);
+      ctx.lineWidth = 4;
+      ctx.strokeStyle = color;
+      ctx.stroke();
+
+      ongoingTouches.splice(idx, 1, copyTouch(touches[i]));  // swap in the new touch record
+      console.log(".");
+    } else {
+      console.log("can't figure out which touch to continue");
+    }
+  }
+}
+```
+
+これは同様に変更されたタッチに対して走査していますが、各タッチで新たに描画する線分の開始点を検出するために、各タッチの以前の情報についてキャッシュしたタッチ情報の配列を参照しています。これは、各タッチの {{domxref("Touch.identifier")}} プロパティを確認して行います。このプロパティは各タッチで一意の識別子であり、指とタッチ面との接触が続いている間、値が固定されます。
+
+これにより各タッチの前の位置の座標を取得して、2 つの点を結ぶ線分を描画するために適切なコンテキストメソッドを使用できます。
+
+線分を描画した後、前のタッチ箇所の情報を `ongoingTouches` 配列内にある現在の情報に置き換えるため、[`Array.splice()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/splice) を呼び出します。
+
+#### タッチの終了を制御する
+
+ユーザーがタッチ面から指を離すと {{domxref("Element/touchend_event", "touchend")}} イベントが発生します。私たちはこれらの両方を、以下の `handleEnd()` 関数を呼び出すというひとつの方法で扱います。この関数の役割は、終了したタッチについて最後の線分を描画することと、継続中のタッチのリストからタッチ箇所を削除することです。
+
+```js
+function handleEnd(evt) {
+  evt.preventDefault();
+  log("touchend");
+  var el = document.getElementById("canvas");
+  var ctx = el.getContext("2d");
+  var touches = evt.changedTouches;
+
+  for (var i = 0; i < touches.length; i++) {
+    var color = colorForTouch(touches[i]);
+    var idx = ongoingTouchIndexById(touches[i].identifier);
+
+    if (idx >= 0) {
+      ctx.lineWidth = 4;
+      ctx.fillStyle = color;
+      ctx.beginPath();
+      ctx.moveTo(ongoingTouches[idx].pageX, ongoingTouches[idx].pageY);
+      ctx.lineTo(touches[i].pageX, touches[i].pageY);
+      ctx.fillRect(touches[i].pageX - 4, touches[i].pageY - 4, 8, 8);  // and a square at the end
+      ongoingTouches.splice(idx, 1);  // remove it; we're done
+    } else {
+      console.log("can't figure out which touch to end");
+    }
+  }
+}
+```
+
+これは前の関数にとても似ていますが、終端を表す小さな四角形を描画することと、[`Array.splice()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/splice) を呼び出して、更新後の情報を追加せずに継続中のタッチリストから古い項目を削除することが異なります。この結果、タッチ箇所の追跡を停止します。
+
+#### 取り消されたタッチを制御する
+
+ユーザーの指がブラウザーの UI に入り込んだり、その他にタッチをキャンセルしなければならないときには {{domxref("Element/touchcancel_event", "touchcancel")}} イベントが発生して、以下の `handleCancel()` 関数が実行されます。
+
+```js
+function handleCancel(evt) {
+  evt.preventDefault();
+  console.log("touchcancel.");
+  var touches = evt.changedTouches;
+
+  for (var i = 0; i < touches.length; i++) {
+    var idx = ongoingTouchIndexById(touches[i].identifier);
+    ongoingTouches.splice(idx, 1);  // remove it; we're done
+  }
+}
+```
+
+即座にタッチを取り消すという考え方から最終の線分を描画せずに、継続中のタッチリストから単純にタッチを削除します。
+
+### 便利な関数
+
+この例ではコードの残りの部分をより明確にすることを助ける、簡単に見ておくべきである 2 つの便利な関数を使用しています。
+
+#### それぞれのタッチの色を選択する
+
+それぞれのタッチの外見を区別して描画するために、タッチの一意な識別子を元に色を選択する `colorForTouch()` 関数を使用します。この識別子は不明瞭な数値ですが、少なくとも現在アクティブなタッチを区別することはできます。
+
+```js
+function colorForTouch(touch) {
+  var r = touch.identifier % 16;
+  var g = Math.floor(touch.identifier / 3) % 16;
+  var b = Math.floor(touch.identifier / 7) % 16;
+  r = r.toString(16); // make it a hex digit
+  g = g.toString(16); // make it a hex digit
+  b = b.toString(16); // make it a hex digit
+  var color = "#" + r + g + b;
+  console.log("color for touch with identifier " + touch.identifier + " = " + color);
+  return color;
+}
+```
+
+この関数の返値は、描画色を設定するために {{HTMLElement("canvas")}} 関数を呼び出すときに使用できる文字列です。例えば {{domxref("Touch.identifier")}} の値が 10 であれば、戻り値は文字列 "#aaa" になります。
+
+#### touch オブジェクトのコピー
+
+一部のブラウザー (例えばモバイル版 Safari) はイベント間で touch オブジェクトを再使用するため、オブジェクト全体を参照するよりも、関心がある部分をコピーするほうが最善です。
+
+```js
+function copyTouch({ identifier, pageX, pageY }) {
+  return { identifier, pageX, pageY };
+}
+```
+
+#### 継続中のタッチを発見する
+
+以下の `ongoingTouchIndexById()` 関数は、指定した識別にマッチするタッチを見つけるために配列 `ongoingTouches` を探索して、そのタッチの配列内における添字を返します。
+
+```js
+function ongoingTouchIndexById(idToFind) {
+  for (var i = 0; i < ongoingTouches.length; i++) {
+    var id = ongoingTouches[i].identifier;
+
+    if (id == idToFind) {
+      return i;
+    }
+  }
+  return -1;    // not found
+}
+```
+
+#### 何を行っているか表示する
+
+```js
+function log(msg) {
+  var p = document.getElementById('log');
+  p.innerHTML = msg + "\n" + p.innerHTML;
+}
+```
+
+ブラウザーが対応していれば、{{LiveSampleLink('Example', '実際に試す')}} ことができます。
+
+[jsFiddle example](http://jsfiddle.net/Darbicus/z3Xdx/10/)
+
+## 追加の豆知識
+
+この章ではウェブアプリケーションでタッチイベントを扱う方法について、追加の豆知識を紹介します。
+
+### クリックを制御する
+
+{{event("touchstart")}} あるいは一連の中で最初の {{domxref("Element/touchmove_event", "touchmove")}} で `preventDefault()` を呼び出すと対応するマウスイベントの発生を抑制できるため、 `touchstart` よりも `touchmove` で `preventDefault()` を呼び出すことが一般的です。この方法では従来どおりマウスイベントが発生して、リンクなどが引き続き動作します。代わりに一部のフレームワークでは同様の目的で、タッチイベントをマウスイベントとして再発生させています。(この例は過度に単純化しており、奇妙な動作になるかもしれません。ガイドとして掲載しているに過ぎません。)
+
+```js
+function onTouch(evt) {
+  evt.preventDefault();
+  if (evt.touches.length > 1 || (evt.type == "touchend" && evt.touches.length > 0))
+    return;
+
+  var newEvt = document.createEvent("MouseEvents");
+  var type = null;
+  var touch = null;
+
+  switch (evt.type) {
+    case "touchstart":
+      type = "mousedown";
+      touch = evt.changedTouches[0];
+      break;
+    case "touchmove":
+      type = "mousemove";
+      touch = evt.changedTouches[0];
+      break;
+    case "touchend":
+      type = "mouseup";
+      touch = evt.changedTouches[0];
+      break;
+  }
+
+  newEvt.initMouseEvent(type, true, true, evt.originalTarget.ownerDocument.defaultView, 0,
+    touch.screenX, touch.screenY, touch.clientX, touch.clientY,
+    evt.ctrlKey, evt.altKey, evt.shiftKey, evt.metaKey, 0, null);
+  evt.originalTarget.dispatchEvent(newEvt);
+}
+```
+
+### 2 番目のタッチのみで preventDefault() を呼び出す
+
+ページ上で `pinchZoom` と言った操作を防ぐテクニックのひとつとして、一連のタッチの 2 番目で `preventDefault()` を呼び出す方法があります。この動作はタッチイベントの仕様書で明示されておらず、ブラウザーによって結果が異なります (iOS ではズームを防ぎますが、パンは可能です。Android はズームが可能ですが、パンはできません。Opera および Firefox は現状、パンもズームも防ぎます)。現在、このケースで特定の動作に依存することは推奨されず、メタビューポートのズームを防ぐと考えてください。
+
+## 仕様書
+
+| 仕様書                                                                           | 状態                                 | 備考                                                              |
+| -------------------------------------------------------------------------------- | ------------------------------------ | ----------------------------------------------------------------- |
+| {{SpecName('Touch Events 2', '#touch-interface', 'Touch')}} | {{Spec2('Touch Events 2')}} | `radiusX`, `radiusY`, `rotationAngle`, `force` プロパティを追加。 |
+| {{SpecName('Touch Events', '#touch-interface', 'Touch')}}     | {{Spec2('Touch Events')}}     | 初回定義                                                          |
+
+## ブラウザーの互換性
+
+### Touch
+
+タッチイベントは通常、タッチ画面を備えた端末で使用できますが、多くのブラウザーは、タッチ画面を備えたものであっても、すべてのデスクトップ端末でタッチイベント API をできないようにしています。
+
+これは、一部のウェブサイトで、タッチイベント API の一部が利用できることが、ブラウザーがモバイル端末で実行されていることを示す指標として使用されているためです。タッチイベント API が利用可能な場合、これらのウェブサイトはモバイル端末を想定し、モバイルに最適化されたコンテンツを配信します。その結果、タッチ画面を搭載したデスクトップ端末のユーザーにとっては、使い勝手が悪くなる可能性があります。
+
+すべての種類の端末でタッチとマウスの両方に対応するには、代わりに[ポインターイベント](/ja/docs/Web/API/Pointer_events)を使用してください。
+
+{{Compat("api.Touch")}}
+
+### Firefox のタッチイベントとマルチプロセス (e10s)
+
+Firefox では、 e10s (electrolysis; [multiprocess Firefox](/ja/docs/Mozilla/Firefox/Multiprocess_Firefox)) が無効になっていると、タッチイベントは無効になります。 Firefox では e10s が既定ででオンになっていますが、 e10s が機能しないようにする必要がある特定のアクセシビリティツールや Firefox アドオンがインストールされている場合など、特定の状況で無効になることがあります。つまり、タッチ画面対応のデスクトップ/ノートパソコンでも、タッチイベントは有効になりません。
+
+e10s が無効になっているかどうかをテストするには、 `about:support` に移動し、 "Application Basics" セクションの "Multiprocess Windows" エントリを調べます。 1/1 は有効、 0/1 は無効を意味します。
+
+タッチイベントの対応を明示的に再度有効にするために e10s を強制的にオンにしたい場合は、 `about:config` に移動して新しいブール設定 `browser.tabs.remote.force-enable` を作成する必要があります。 `true` に設定してブラウザーを再起動すると、他の設定に関係なく e10s が有効になります。
diff --git a/files/ja/web/api/touchevent/index.html b/files/ja/web/api/touchevent/index.html
deleted file mode 100644
index 49ba7e652f986a..00000000000000
--- a/files/ja/web/api/touchevent/index.html
+++ /dev/null
@@ -1,147 +0,0 @@
----
-title: TouchEvent
-slug: Web/API/TouchEvent
-tags:
-  - API
-  - DOM
-  - Interface
-  - Reference
-  - TouchEvent
-  - touch
-  - インターフェイス
-translation_of: Web/API/TouchEvent
----
-

{{APIRef("Touch Events")}}

- -

TouchEvent インターフェイスは、タッチ感応面への接触状態が変化したときに発生する {{domxref("UIEvent")}} を表します。この面は、例えばタッチ画面やトラックパッドです。このイベントは画面との 1 か所以上の接触を表すことが可能であり、また接触個所の移動、増加、減少などに対応することができます。

- -

タッチは {{domxref("Touch")}} オブジェクトで表されます。それぞれのタッチで位置、大きさと形状、圧力の量、対象要素を示します。タッチのリストは {{domxref("TouchList")}} オブジェクトで表されます。

- -

{{InheritanceDiagram}}

- -

コンストラクター

- -
-
{{domxref("TouchEvent.TouchEvent", "TouchEvent()")}}
-
TouchEvent オブジェクトを生成します。
-
- -

プロパティ

- -

このインターフェイスは、親である {{domxref("UIEvent")}} および {{domxref("Event")}} からプロパティを継承しています。

- -
-
{{domxref("TouchEvent.altKey")}} {{readonlyInline}}
-
タッチイベントが発生したときに alt キーが押下されていたかを示す論理値です。
-
{{domxref("TouchEvent.changedTouches")}} {{readonlyInline}}
-
{{domxref("TouchList")}} で、前回のタッチイベントと今回との間に接触状態が変化したそれぞれの接触点を表すすべての {{domxref("Touch")}} オブジェクトです。
-
{{domxref("TouchEvent.ctrlKey")}} {{readonlyInline}}
-
タッチイベントが発生したときに control キーが押下されていたかを示す論理値です。
-
{{domxref("TouchEvent.metaKey")}} {{readonlyInline}}
-
タッチイベントが発生したときに meta キーが押下されていたかを示す論理値です。
-
{{domxref("TouchEvent.shiftKey")}} {{readonlyInline}}
-
タッチイベントが発生したときに shift キーが押下されていたかを示す論理値です。
-
{{domxref("TouchEvent.targetTouches")}}{{readonlyInline}}
-
現在タッチ面に接触している、かつイベントのターゲットと同じ要素でタッチを始めた {{domxref("Touch")}} オブジェクトすべてで構成される {{domxref("TouchList")}} です。
-
{{domxref("TouchEvent.touches")}} {{readonlyInline}}
-
{{domxref("TouchList")}} で、対象や状態の変化にかかわらず、この面における現在のすべての接触点を表すすべての {{domxref("Touch")}} オブジェクトが入ります。
-
{{domxref("TouchEvent.rotation")}} {{non-standard_inline()}} {{readonlyInline}}
-
イベントの開始以来の回転の変化 (角度) です。正の数は時計回りの回転です。負の数は逆時計回りの回転です。初期値は 0.0 です。
-
{{domxref("TouchEvent.scale")}} {{non-standard_inline()}} {{readonlyInline}}
-
イベントの開始以来の2本の指の間の距離です。イベントの開始時における最初の指の間の距離に対する浮動小数点の倍数で表現します。 1.0 より小さな値は内側へのピンチ (ズームアウト) です。 1.0 より大きな値は外側へのピンチ (ズームイン) です。初期値は 1.0 です。
-
- -

タッチイベントの種類

- -

タッチ関連の変化があったことを示すために発生するイベントは、数種類あります。イベントの {{domxref("event.type", "TouchEvent.type")}} プロパティを確認すると、何が発生したかを判断できます。

- -

{{domxref("Element/touchstart_event", "touchstart")}}

- -

ユーザーがタッチ面のタッチ点に触れたときに発生します。イベントのターゲットは、タッチが発生した場所の要素 ({{domxref("Element")}}) です。

- -

{{domxref("Element/touchend_event", "touchend")}}

- -

ユーザーがタッチ面からタッチ点を削除したとき (すなわち、指やスタイラスをタッチ面から離したとき) に発生します。これはタッチ点がタッチ面の端の外へ移動した場合にも発生します。例えば、ユーザーの指が画面の端よりも外に移動した場合です。

- -

イベントのターゲットは、タッチ点が要素の外に移動した場合であっても、タッチ点に対応する touchstart イベントを受信したのと同じ要素 ({{domxref("Element")}}) です。

- -

タッチ面から削除されたタッチ点所 (複数の場合を含む) は、 changedTouches 属性で示される {{domxref("TouchList")}} でわかります。

- -

{{domxref("Element/touchmove_event", "touchmove")}}

- -

ユーザがタッチ面でタッチ点を動かしたときに発生します。イベントのターゲットは、タッチ点が要素の外に移動した場合であっても、タッチ点に対応する touchstart イベントを受信したのと同じ要素 ({{domxref("Element")}}) です。

- -

このイベントはタッチ点の範囲、回転角、強さの属性が変化したときにも発生します。

- -
注: touchmove イベントが発生する頻度はブラウザーごとに異なります。また、ユーザーのハードウェアの能力にも大きく依存するでしょう。特定のイベント粒度に依存してはいけません。
- -

{{domxref("Element/touchcancel_event", "touchcancel")}}

- -

タッチ個所が何らかの方法で取り消されたときに発生します。このイベントが発生する理由はいくつか考えられます (正確な理由はデバイスごと、およびブラウザごとに異なるでしょう):

- - - -

addEventListener() および preventDefault() の使用

- -

重要なのは多くの場合、タッチイベントとマウスイベントの両方が送られることです (タッチに特化していないコードがユーザーと対話するため)。タッチイベントを使用する場合は、 {{domxref("Event.preventDefault","preventDefault()")}} を呼び出してマウスイベントが送信されないようにしてください。

- -

Chrome のバージョン 56 以降 (デスクトップ版, Android 版 Chrome, Android WebView) は例外で、 passive オプションの {{domxref("Element/touchstart_event", "touchstart")}} および {{domxref("Element/touchmove_event", "touchmove")}} における既定値は true であり、 {{domxref("Event.preventDefault","preventDefault()")}} の呼び出しは効果がありません。この動作を変更するためには、passive オプションを false に設定します。そうすると {{domxref("Event.preventDefault","preventDefault()")}} が仕様書通りに動作します。リスナーを既定で passive と扱うことで、ユーザーがスクロール中にページのレンダリングがブロックされることを防いでいます。デモが Google Developer サイトにあります。

- -

GlobalEventHandlers

- -

{{domxref("GlobalEventHandlers")}} ミックスインは以下のイベントをグローバルイベントとして定義しており、 DOM 中のユーザーと対話できるあらゆる要素で利用できます。

- -
-
{{domxref("GlobalEventHandlers.ontouchstart")}} {{experimental_inline}}
-
{{domxref("Element/touchstart_event", "touchstart")}} イベントの {{domxref("GlobalEventHandlers","グローバルイベントハンドラー", "", 1)}}。
-
{{domxref("GlobalEventHandlers.ontouchend")}} {{experimental_inline}}
-
{{domxref("Element/touchend_event", "touchend")}} イベントの {{domxref("GlobalEventHandlers","グローバルイベントハンドラー", "", 1)}}。
-
{{domxref("GlobalEventHandlers.ontouchmove")}} {{experimental_inline}}
-
{{domxref("Element/touchmove_event", "touchmove")}} イベントの {{domxref("GlobalEventHandlers","グローバルイベントハンドラー", "", 1)}}。
-
{{domxref("GlobalEventHandlers.ontouchcancel")}} {{experimental_inline}}
-
{{domxref("Element/touchcancel_event", "touchcancel")}} イベントの {{domxref("GlobalEventHandlers","グローバルイベントハンドラー", "", 1)}}。
-
- -

- -

タッチイベントのメイン記事にある例をご覧ください。

- -

仕様書

- - - - - - - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName('Touch Events 2','#touchevent-interface', 'TouchEvent')}}{{Spec2('Touch Events 2')}}グローバル属性ハンドラーの ontouchstart, ontouchend, ontouchmove, ontouchend を追加
{{SpecName('Touch Events', '#touchevent-interface', 'TouchEvent')}}{{Spec2('Touch Events')}}初回定義
- -

ブラウザーの互換性

- -

{{Compat("api.TouchEvent")}}

- -

関連情報

- - diff --git a/files/ja/web/api/touchevent/index.md b/files/ja/web/api/touchevent/index.md new file mode 100644 index 00000000000000..51331bad6b0a47 --- /dev/null +++ b/files/ja/web/api/touchevent/index.md @@ -0,0 +1,120 @@ +--- +title: TouchEvent +slug: Web/API/TouchEvent +tags: + - API + - DOM + - Interface + - Reference + - TouchEvent + - touch + - インターフェイス +translation_of: Web/API/TouchEvent +--- +{{APIRef("Touch Events")}} + +**`TouchEvent`** インターフェイスは、タッチ感応面への接触状態が変化したときに発生する {{domxref("UIEvent")}} を表します。この面は、例えばタッチ画面やトラックパッドです。このイベントは画面との 1 か所以上の接触を表すことが可能であり、また接触個所の移動、増加、減少などに対応することができます。 + +タッチは {{domxref("Touch")}} オブジェクトで表されます。それぞれのタッチで位置、大きさと形状、圧力の量、対象要素を示します。タッチのリストは {{domxref("TouchList")}} オブジェクトで表されます。 + +{{InheritanceDiagram}} + +## コンストラクター + +- {{domxref("TouchEvent.TouchEvent", "TouchEvent()")}} + - : `TouchEvent` オブジェクトを生成します。 + +## プロパティ + +_このインターフェイスは、親である {{domxref("UIEvent")}} および {{domxref("Event")}} からプロパティを継承しています。_ + +- {{domxref("TouchEvent.altKey")}} {{readonlyInline}} + - : タッチイベントが発生したときに alt キーが押下されていたかを示す論理値です。 +- {{domxref("TouchEvent.changedTouches")}} {{readonlyInline}} + - : {{domxref("TouchList")}} で、前回のタッチイベントと今回との間に接触状態が変化したそれぞれの接触点を表すすべての {{domxref("Touch")}} オブジェクトです。 +- {{domxref("TouchEvent.ctrlKey")}} {{readonlyInline}} + - : タッチイベントが発生したときに control キーが押下されていたかを示す論理値です。 +- {{domxref("TouchEvent.metaKey")}} {{readonlyInline}} + - : タッチイベントが発生したときに meta キーが押下されていたかを示す論理値です。 +- {{domxref("TouchEvent.shiftKey")}} {{readonlyInline}} + - : タッチイベントが発生したときに shift キーが押下されていたかを示す論理値です。 +- {{domxref("TouchEvent.targetTouches")}}{{readonlyInline}} + - : 現在タッチ面に接触している、**かつ**イベントのターゲットと同じ要素でタッチを始めた {{domxref("Touch")}} オブジェクトすべてで構成される {{domxref("TouchList")}} です。 +- {{domxref("TouchEvent.touches")}} {{readonlyInline}} + - : {{domxref("TouchList")}} で、対象や状態の変化にかかわらず、この面における現在のすべての接触点を表すすべての {{domxref("Touch")}} オブジェクトが入ります。 +- {{domxref("TouchEvent.rotation")}} {{non-standard_inline()}} {{readonlyInline}} + - : イベントの開始以来の回転の変化 (角度) です。正の数は時計回りの回転です。負の数は逆時計回りの回転です。初期値は `0.0` です。 +- {{domxref("TouchEvent.scale")}} {{non-standard_inline()}} {{readonlyInline}} + - : イベントの開始以来の 2 本の指の間の距離です。イベントの開始時における最初の指の間の距離に対する浮動小数点の倍数で表現します。 1.0 より小さな値は内側へのピンチ (ズームアウト) です。 1.0 より大きな値は外側へのピンチ (ズームイン) です。初期値は `1.0` です。 + +## タッチイベントの種類 + +タッチ関連の変化があったことを示すために発生するイベントは、数種類あります。イベントの {{domxref("event.type", "TouchEvent.type")}} プロパティを確認すると、何が発生したかを判断できます。 + +### {{domxref("Element/touchstart_event", "touchstart")}} + +ユーザーがタッチ面のタッチ点に触れたときに発生します。イベントのターゲットは、タッチが発生した場所の要素 ({{domxref("Element")}}) です。 + +### {{domxref("Element/touchend_event", "touchend")}} + +ユーザーがタッチ面からタッチ点を削除したとき (すなわち、指やスタイラスをタッチ面から離したとき) に発生します。これはタッチ点がタッチ面の端の外へ移動した場合にも発生します。例えば、ユーザーの指が画面の端よりも外に移動した場合です。 + +イベントのターゲットは、タッチ点が要素の外に移動した場合であっても、タッチ点に対応する `touchstart` イベントを受信したのと同じ要素 ({{domxref("Element")}}) です。 + +タッチ面から削除されたタッチ点所 (複数の場合を含む) は、 `changedTouches` 属性で示される {{domxref("TouchList")}} でわかります。 + +### {{domxref("Element/touchmove_event", "touchmove")}} + +ユーザがタッチ面でタッチ点を動かしたときに発生します。イベントのターゲットは、タッチ点が要素の外に移動した場合であっても、タッチ点に対応する `touchstart` イベントを受信したのと同じ要素 ({{domxref("Element")}}) です。 + +このイベントはタッチ点の範囲、回転角、強さの属性が変化したときにも発生します。 + +> **Note:** **注:** `touchmove` イベントが発生する頻度はブラウザーごとに異なります。また、ユーザーのハードウェアの能力にも大きく依存するでしょう。特定のイベント粒度に依存してはいけません。 + +### {{domxref("Element/touchcancel_event", "touchcancel")}} + +タッチ個所が何らかの方法で取り消されたときに発生します。このイベントが発生する理由はいくつか考えられます (正確な理由はデバイスごと、およびブラウザごとに異なるでしょう): + +- タッチを取り消す、ある種のイベントが発生した。これは、操作中にモーダルなアラートがポップアップした場合に発生するでしょう。 +- タッチ個所がドキュメントウィンドウから外れて、ブラウザの UI 領域、プラグイン、あるいは他の外部コンテンツに移動した。 +- スクリーンがサポートする個数より多くのタッチ個所にユーザがタッチすると、{{domxref("TouchList")}} の中でもっとも古い {{domxref("Touch")}} が取り消される。 + +### addEventListener() および preventDefault() の使用 + +重要なのは多くの場合、タッチイベントとマウスイベントの両方が送られることです (タッチに特化していないコードがユーザーと対話するため)。タッチイベントを使用する場合は、 {{domxref("Event.preventDefault","preventDefault()")}} を呼び出してマウスイベントが送信されないようにしてください。 + +Chrome のバージョン 56 以降 (デスクトップ版, Android 版 Chrome, Android WebView) は例外で、 `passive` オプションの {{domxref("Element/touchstart_event", "touchstart")}} および {{domxref("Element/touchmove_event", "touchmove")}} における既定値は `true` であり、 {{domxref("Event.preventDefault","preventDefault()")}} の呼び出しは効果がありません。この動作を変更するためには、`passive` オプションを `false` に設定します。そうすると {{domxref("Event.preventDefault","preventDefault()")}} が仕様書通りに動作します。リスナーを既定で `passive` と扱うことで、ユーザーがスクロール中にページのレンダリングがブロックされることを防いでいます。デモが [Google Developer](https://developers.google.com/web/updates/2016/06/passive-event-listeners) サイトにあります。 + +## GlobalEventHandlers + +{{domxref("GlobalEventHandlers")}} ミックスインは以下のイベントをグローバルイベントとして定義しており、 DOM 中のユーザーと対話できるあらゆる要素で利用できます。 + +- {{domxref("GlobalEventHandlers.ontouchstart")}} {{experimental_inline}} + - : {{domxref("Element/touchstart_event", "touchstart")}} イベントの {{domxref("GlobalEventHandlers","グローバルイベントハンドラー", "", 1)}}。 +- {{domxref("GlobalEventHandlers.ontouchend")}} {{experimental_inline}} + - : {{domxref("Element/touchend_event", "touchend")}} イベントの {{domxref("GlobalEventHandlers","グローバルイベントハンドラー", "", 1)}}。 +- {{domxref("GlobalEventHandlers.ontouchmove")}} {{experimental_inline}} + - : {{domxref("Element/touchmove_event", "touchmove")}} イベントの {{domxref("GlobalEventHandlers","グローバルイベントハンドラー", "", 1)}}。 +- {{domxref("GlobalEventHandlers.ontouchcancel")}} {{experimental_inline}} + - : {{domxref("Element/touchcancel_event", "touchcancel")}} イベントの {{domxref("GlobalEventHandlers","グローバルイベントハンドラー", "", 1)}}。 + +## 例 + +[タッチイベントのメイン記事にある例](/ja/docs/Web/API/Touch_events#Example)をご覧ください。 + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| -------------------------------------------------------------------------------------------- | ------------------------------------ | ------------------------------------------------------------------------------------------- | +| {{SpecName('Touch Events 2','#touchevent-interface', 'TouchEvent')}} | {{Spec2('Touch Events 2')}} | グローバル属性ハンドラーの `ontouchstart`, `ontouchend`, `ontouchmove`, `ontouchend` を追加 | +| {{SpecName('Touch Events', '#touchevent-interface', 'TouchEvent')}} | {{Spec2('Touch Events')}} | 初回定義 | + +## ブラウザーの互換性 + +{{Compat("api.TouchEvent")}} + +## 関連情報 + +- [タッチイベント](/ja/docs/Web/API/Touch_events) +- {{domxref("GestureEvent")}} +- {{domxref("MSGestureEvent")}} diff --git a/files/ja/web/api/touchlist/index.html b/files/ja/web/api/touchlist/index.html deleted file mode 100644 index faa466573e0f2d..00000000000000 --- a/files/ja/web/api/touchlist/index.html +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: TouchList -slug: Web/API/TouchList -tags: - - API - - DOM - - DOM Reference - - Mobile - - Reference - - Touch Event - - TouchList - - touch -translation_of: Web/API/TouchList ---- -

{{APIRef("Touch Events")}}

- -

TouchList インターフェイスは、タッチ面上の接触点のリストを表します。例えば、ユーザーがタッチ面 (画面やトラックパッドなど) を 3 本指で操作している場合、対応する TouchList オブジェクトは 1 本の指あたり 1 つの {{domxref("Touch")}} オブジェクトを持ち、全部で 3 要素になります。

- -

プロパティ

- -
-
{{domxref("TouchList.length")}} {{readonlyInline}}
-
TouchList 中の {{domxref("Touch")}} オブジェクトの個数
-
- -

メソッド

- -
-
{{domxref("TouchList.identifiedTouch()")}}
-
識別子が指定された値と一致するリスト内の、最初の {{domxref("Touch")}} 要素を返す
-
{{domxref("TouchList.item()")}}
-
リスト内の指定した位置の {{domxref("Touch")}} オブジェクトを返します。
-
- -

- -

タッチイベントのメイン記事にある例をご覧ください。

- -

仕様書

- - - - - - - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName('Touch Events 2','#touchlist-interface')}}{{Spec2('Touch Events 2')}}Non-stable version.
{{SpecName('Touch Events', '#touchlist-interface')}}{{Spec2('Touch Events')}}初回定義
- -

ブラウザーの互換性

- -

{{Compat("api.TouchList")}}

- -

関連情報

- - diff --git a/files/ja/web/api/touchlist/index.md b/files/ja/web/api/touchlist/index.md new file mode 100644 index 00000000000000..8947bc3c89b70e --- /dev/null +++ b/files/ja/web/api/touchlist/index.md @@ -0,0 +1,49 @@ +--- +title: TouchList +slug: Web/API/TouchList +tags: + - API + - DOM + - DOM Reference + - Mobile + - Reference + - Touch Event + - TouchList + - touch +translation_of: Web/API/TouchList +--- +{{APIRef("Touch Events")}} + +**`TouchList`** インターフェイスは、タッチ面上の接触点のリストを表します。例えば、ユーザーがタッチ面 (画面やトラックパッドなど) を 3 本指で操作している場合、対応する `TouchList` オブジェクトは 1 本の指あたり 1 つの {{domxref("Touch")}} オブジェクトを持ち、全部で 3 要素になります。 + +## プロパティ + +- {{domxref("TouchList.length")}} {{readonlyInline}} + - : `TouchList` 中の {{domxref("Touch")}} オブジェクトの個数 + +## メソッド + +- {{domxref("TouchList.identifiedTouch()")}} + - : 識別子が指定された値と一致するリスト内の、最初の {{domxref("Touch")}} 要素を返す +- {{domxref("TouchList.item()")}} + - : リスト内の指定した位置の {{domxref("Touch")}} オブジェクトを返します。 + +## 例 + +[タッチイベントのメイン記事にある例](/ja/docs/Web/API/Touch_events#Example)をご覧ください。 + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| ------------------------------------------------------------------------ | ------------------------------------ | ------------------- | +| {{SpecName('Touch Events 2','#touchlist-interface')}} | {{Spec2('Touch Events 2')}} | Non-stable version. | +| {{SpecName('Touch Events', '#touchlist-interface')}} | {{Spec2('Touch Events')}} | 初回定義 | + +## ブラウザーの互換性 + +{{Compat("api.TouchList")}} + +## 関連情報 + +- [タッチイベント](/ja/docs/Web/API/Touch_events) +- {{domxref("Document.createTouchList()")}} diff --git a/files/ja/web/api/touchlist/length/index.html b/files/ja/web/api/touchlist/length/index.html deleted file mode 100644 index 2ff2f4db94f446..00000000000000 --- a/files/ja/web/api/touchlist/length/index.html +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: TouchList.length -slug: Web/API/TouchList/length -tags: - - DOM - - Gecko DOM Reference - - Mobile - - touch -translation_of: Web/API/TouchList/length ---- -
- {{ApiRef}}
-

概要

-

この読取専用プロパティは {{domxref("TouchList")}} 内の項目数を表します。

-

構文

-
numTouches = touchList.length;
-
- -

仕様

- diff --git a/files/ja/web/api/touchlist/length/index.md b/files/ja/web/api/touchlist/length/index.md new file mode 100644 index 00000000000000..9bf2de9730c004 --- /dev/null +++ b/files/ja/web/api/touchlist/length/index.md @@ -0,0 +1,25 @@ +--- +title: TouchList.length +slug: Web/API/TouchList/length +tags: + - DOM + - Gecko DOM Reference + - Mobile + - touch +translation_of: Web/API/TouchList/length +--- +{{ApiRef}} + +## 概要 + +この読取専用プロパティは {{domxref("TouchList")}} 内の項目数を表します。 + +## 構文 + + numTouches = touchList.length; + +- `numTouches` : {{domxref("TouchList")}} 内の {{domxref("Touch")}} オブジェクトの個数を表す整数値 + +## 仕様 + +- [Touch Events Specification](http://www.w3.org/TR/touch-events/) diff --git a/files/ja/web/api/trackevent/track/index.html b/files/ja/web/api/trackevent/track/index.html deleted file mode 100644 index 72a0f6f9c73921..00000000000000 --- a/files/ja/web/api/trackevent/track/index.html +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: TrackEvent.track -slug: Web/API/TrackEvent/track -tags: - - API - - Audio - - Event - - HTML DOM - - Media - - Property - - Read-only - - Reference - - TrackEvent - - Video - - track -translation_of: Web/API/TrackEvent/track ---- -
{{APIRef("HTML DOM")}}
- -

{{domxref("TrackEvent")}} インターフェイスの読み取り専用の track プロパティは、イベントが適用されるメディアトラックオブジェクトを指定します。 これは {{domxref("AudioTrack")}}、{{domxref("VideoTrack")}}、または {{domxref("TextTrack")}} のオブジェクトになります。

- -

構文

- -
track = TrackEvent.track;
- -

- -

トラックで表されるメディアの種類に応じて、{{domxref("AudioTrack")}}、{{domxref("VideoTrack")}}、または {{domxref("TextTrack")}} のいずれかの種類のオブジェクトです。 これは、イベントが適用されるトラックを識別します。

- -

仕様

- - - - - - - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('HTML WHATWG', "media.html#dom-trackevent-track", "TrackEvent.track")}}{{Spec2('HTML WHATWG')}}初期定義
{{SpecName('HTML5 W3C', "embedded-content-0.html#dom-trackevent-track", "TrackEvent.track")}}{{Spec2('HTML5 W3C')}}初期定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.TrackEvent.track")}}

diff --git a/files/ja/web/api/trackevent/track/index.md b/files/ja/web/api/trackevent/track/index.md new file mode 100644 index 00000000000000..b487b8c140db82 --- /dev/null +++ b/files/ja/web/api/trackevent/track/index.md @@ -0,0 +1,39 @@ +--- +title: TrackEvent.track +slug: Web/API/TrackEvent/track +tags: + - API + - Audio + - Event + - HTML DOM + - Media + - Property + - Read-only + - Reference + - TrackEvent + - Video + - track +translation_of: Web/API/TrackEvent/track +--- +{{APIRef("HTML DOM")}} + +{{domxref("TrackEvent")}} インターフェイスの読み取り専用の **`track`** プロパティは、イベントが適用されるメディアトラックオブジェクトを指定します。 これは {{domxref("AudioTrack")}}、{{domxref("VideoTrack")}}、または {{domxref("TextTrack")}} のオブジェクトになります。 + +## 構文 + + track = TrackEvent.track; + +### 値 + +トラックで表されるメディアの種類に応じて、{{domxref("AudioTrack")}}、{{domxref("VideoTrack")}}、または {{domxref("TextTrack")}} のいずれかの種類のオブジェクトです。 これは、イベントが適用されるトラックを識別します。 + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------------------------------------------------------------------- | -------------------------------- | -------- | +| {{SpecName('HTML WHATWG', "media.html#dom-trackevent-track", "TrackEvent.track")}} | {{Spec2('HTML WHATWG')}} | 初期定義 | +| {{SpecName('HTML5 W3C', "embedded-content-0.html#dom-trackevent-track", "TrackEvent.track")}} | {{Spec2('HTML5 W3C')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.TrackEvent.track")}} diff --git a/files/ja/web/api/trackevent/trackevent/index.html b/files/ja/web/api/trackevent/trackevent/index.html deleted file mode 100644 index 622f86dfbe74f0..00000000000000 --- a/files/ja/web/api/trackevent/trackevent/index.html +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: TrackEvent() -slug: Web/API/TrackEvent/TrackEvent -tags: - - API - - Audio - - Constructor - - HTML DOM - - Media - - Reference - - TrackEvent - - Tracks - - Video -translation_of: Web/API/TrackEvent/TrackEvent ---- -
{{APIRef("HTML DOM")}}
- -

TrackEvent() コンストラクタは、トラックのリスト({{domxref("AudioTrackList")}}、{{domxref("VideoTrackList")}}、または {{domxref("TextTrackList")}})で発生したイベントを記述する新しい {{domxref("TrackEvent")}} オブジェクトを作成して返します。

- -

構文

- -
trackEvent = new TrackEvent(type, eventInfo);
- -

パラメーター

- -
-
type
-
オブジェクトによって記述されるトラックイベントの種類: "addtrack" または "removetrack"
-
eventInfo {{optional_inline}}
-
新しいイベントを構成する追加情報を提供するオプションの辞書。 次のフィールドを自由に組み合わせて含めることができます。 -
-
track {{optional_inline}}
-
イベントが参照するトラック。 これはデフォルトでは null ですが、トラックの種類に応じて {{domxref("VideoTrack")}}、{{domxref("AudioTrack")}}、または {{domxref("TextTrack")}} に設定する必要があります。
-
bubbles {{optional_inline}}
-
イベントをバブリングするかどうかを示す Boolean。
-
cancelable {{optional_inline}}
-
イベントをキャンセルできるかどうかを示す Boolean。
-
composed {{optional_inline}}
-
イベントがシャドウルートの外側でリスナーをトリガーするかどうかを示す Boolean。 詳細については {{domxref("Event.composed")}} をご覧ください。
-
-
-
- -

戻り値

- -

新しく作成された {{domxref("TrackEvent")}} オブジェクト。 コンストラクタへの入力の説明に従って初期化されます。

- -

仕様

- - - - - - - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('HTML WHATWG', "media.html#dom-trackevent-trackevent", "TrackEvent()")}}{{Spec2('HTML WHATWG')}}初期定義
{{SpecName('HTML5 W3C', "semantics-embedded-content.html#dom-trackevent-trackevent", "TrackEvent()")}}{{Spec2('HTML5 W3C')}}初期定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.TrackEvent.TrackEvent")}}

diff --git a/files/ja/web/api/trackevent/trackevent/index.md b/files/ja/web/api/trackevent/trackevent/index.md new file mode 100644 index 00000000000000..9d945295eb4f41 --- /dev/null +++ b/files/ja/web/api/trackevent/trackevent/index.md @@ -0,0 +1,51 @@ +--- +title: TrackEvent() +slug: Web/API/TrackEvent/TrackEvent +tags: + - API + - Audio + - Constructor + - HTML DOM + - Media + - Reference + - TrackEvent + - Tracks + - Video +translation_of: Web/API/TrackEvent/TrackEvent +--- +{{APIRef("HTML DOM")}} + +`TrackEvent()` コンストラクタは、トラックのリスト({{domxref("AudioTrackList")}}、{{domxref("VideoTrackList")}}、または {{domxref("TextTrackList")}})で発生したイベントを記述する新しい {{domxref("TrackEvent")}} オブジェクトを作成して返します。 + +## 構文 + + trackEvent = new TrackEvent(type, eventInfo); + +### パラメーター + +- `type` + - : オブジェクトによって記述されるトラックイベントの種類: `"addtrack"` または `"removetrack"`。 +- `eventInfo` {{optional_inline}} + - : 新しいイベントを構成する追加情報を提供するオプションの辞書。 次のフィールドを自由に組み合わせて含めることができます。_ `track` {{optional_inline}} + _ : イベントが参照するトラック。 これはデフォルトでは `null` ですが、トラックの種類に応じて {{domxref("VideoTrack")}}、{{domxref("AudioTrack")}}、または {{domxref("TextTrack")}} に設定する必要があります。 + - `bubbles` {{optional_inline}} + - : イベントをバブリングするかどうかを示す Boolean。 + - `cancelable` {{optional_inline}} + - : イベントをキャンセルできるかどうかを示す Boolean。 + - `composed` {{optional_inline}} + - : イベントがシャドウルートの外側でリスナーをトリガーするかどうかを示す Boolean。 詳細については {{domxref("Event.composed")}} をご覧ください。 + +### 戻り値 + +新しく作成された {{domxref("TrackEvent")}} オブジェクト。 コンストラクタへの入力の説明に従って初期化されます。 + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- | -------- | +| {{SpecName('HTML WHATWG', "media.html#dom-trackevent-trackevent", "TrackEvent()")}} | {{Spec2('HTML WHATWG')}} | 初期定義 | +| {{SpecName('HTML5 W3C', "semantics-embedded-content.html#dom-trackevent-trackevent", "TrackEvent()")}} | {{Spec2('HTML5 W3C')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.TrackEvent.TrackEvent")}} diff --git a/files/ja/web/api/transferable/index.html b/files/ja/web/api/transferable/index.html deleted file mode 100644 index 14627189503124..00000000000000 --- a/files/ja/web/api/transferable/index.html +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Transferable -slug: Web/API/Transferable -tags: - - API - - Interface - - Reference - - Transferable - - Web Workers - - インターフェイス -translation_of: Web/API/Transferable ---- -
{{APIRef("DOM")}}
- -

Transferable インターフェイスは、メインスレッドと Web worker のような、異なる実行コンテキスト間で転送できるオブジェクトを表します。

- -

これは抽象インターフェイスであり、この型のオブジェクトは存在しません。メソッドやプロパティも一切定義していません。 {{domxref("Worker.postMessage()")}} メソッドを使用して {{domxref("Worker")}} へ転送されるなど、特定の条件で使用可能なオブジェクトを示す単なるタグに過ぎません。

- -
-

メモ: Transferable インターフェイスは厳密にはもう存在しません。機能面では Transferable オブジェクトはまだ存在しますが、もっと基礎的なレベルで実装されています (技術的にいえば、 [Transferable] という {{Glossary("WebIDL")}} 拡張属性です)。

-
- -

{{domxref("ArrayBuffer")}}, {{domxref("MessagePort")}}, {{domxref("ImageBitmap")}}, {{domxref("OffscreenCanvas")}} の各型が、このインターフェイスを実装しています。

- -

プロパティ

- -

Transferable インターフェイスは特定のプロパティを実装または継承していません。

- -

メソッド

- -

Transferable インターフェイスは特定のプロパティを実装または継承していません。

- -

仕様書

- - - - - - - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName('HTML WHATWG', "infrastructure.html#transferable-objects", "Transferable")}}{{Spec2('HTML WHATWG')}}Transferable インターフェイスを [Transferable] Web IDL 拡張属性で置き換えた。
{{SpecName('HTML5 W3C', "infrastructure.html#transferable-objects", "Transferable")}}{{Spec2('HTML5 W3C')}}初回定義
- -

ブラウザーの互換性

- -
-

{{Compat("api.Transferable")}}

-
- -

関連情報

- - diff --git a/files/ja/web/api/transferable/index.md b/files/ja/web/api/transferable/index.md new file mode 100644 index 00000000000000..aca30d1bdb5ff7 --- /dev/null +++ b/files/ja/web/api/transferable/index.md @@ -0,0 +1,44 @@ +--- +title: Transferable +slug: Web/API/Transferable +tags: + - API + - Interface + - Reference + - Transferable + - Web Workers + - インターフェイス +translation_of: Web/API/Transferable +--- +{{APIRef("DOM")}} + +**`Transferable`** インターフェイスは、メインスレッドと Web worker のような、異なる実行コンテキスト間で転送できるオブジェクトを表します。 + +これは抽象インターフェイスであり、この型のオブジェクトは存在しません。メソッドやプロパティも一切定義していません。 {{domxref("Worker.postMessage()")}} メソッドを使用して {{domxref("Worker")}} へ転送されるなど、特定の条件で使用可能なオブジェクトを示す単なるタグに過ぎません。 + +> **Note:** **メモ:** `Transferable` インターフェイスは厳密にはもう存在しません。*機能面*では `Transferable` オブジェクトはまだ存在しますが、もっと基礎的なレベルで実装されています (技術的にいえば、 `[Transferable]` という {{Glossary("WebIDL")}} 拡張属性です)。 + +{{domxref("ArrayBuffer")}}, {{domxref("MessagePort")}}, {{domxref("ImageBitmap")}}, {{domxref("OffscreenCanvas")}} の各型が、このインターフェイスを実装しています。 + +## プロパティ + +_`Transferable` インターフェイスは特定のプロパティを実装または継承していません。_ + +## メソッド + +_`Transferable` インターフェイスは特定のプロパティを実装または継承していません。_ + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------- | --------------------------------------------------------------------------------- | +| {{SpecName('HTML WHATWG', "infrastructure.html#transferable-objects", "Transferable")}} | {{Spec2('HTML WHATWG')}} | `Transferable` インターフェイスを `[Transferable]` Web IDL 拡張属性で置き換えた。 | +| {{SpecName('HTML5 W3C', "infrastructure.html#transferable-objects", "Transferable")}} | {{Spec2('HTML5 W3C')}} | 初回定義 | + +## ブラウザーの互換性 + +{{Compat("api.Transferable")}} + +## 関連情報 + +- これを実装するインターフェイス: {{jsxref("ArrayBuffer")}}, {{domxref("MessagePort")}}, {{domxref("ImageBitmap")}} diff --git a/files/ja/web/api/transformstream/index.html b/files/ja/web/api/transformstream/index.html deleted file mode 100644 index 23c6230077ae23..00000000000000 --- a/files/ja/web/api/transformstream/index.html +++ /dev/null @@ -1,166 +0,0 @@ ---- -title: TransformStream -slug: Web/API/TransformStream -tags: - - API - - Interface - - Streams API - - TransformStream - - Web - - インターフェイス -translation_of: Web/API/TransformStream ---- -
{{APIRef("Media Capture and Streams")}}
- -

TransformStreamStreams API のインターフェイスで一連の変換可能なデータを表します。

- -

コンストラクター

- -
-
{{domxref("TransformStream.TransformStream", "TransformStream()")}}
-
指定されたハンドラーから変換ストリームを作成して返却します。
-
- -

プロパティ

- -
-
{{domxref("TransformStream.readable")}} {{readonlyInline}}
-
TransformStream の readable 側の端点です。
-
{{domxref("TransformStream.writable")}} {{readonlyInline}}
-
TransformStream の writable 側の端点です。
-
- -

メソッド

- -

なし

- -

- -

何かを uint8array に変換するストリーム

- -

以下の例では、変換ストリームは受信したすべてのチャンクを {{domxref("Uint8Array")}} の値に渡します。

- -
const transformContent = {
-  start() {}, // required.
-  async transform(chunk, controller) {
-    chunk = await chunk
-    switch (typeof chunk) {
-      case 'object':
-        // just say the stream is done I guess
-        if (chunk === null) controller.terminate()
-        else if (ArrayBuffer.isView(chunk))
-          controller.enqueue(new Uint8Array(chunk.buffer, chunk.byteOffset, chunk.byteLength))
-        else if (Array.isArray(chunk) && chunk.every(value => typeof value === 'number'))
-          controller.enqueue(new Uint8Array(chunk))
-        else if ('function' === typeof chunk.valueOf && chunk.valueOf() !== chunk)
-          this.transform(chunk.valueOf(), controller) // hack
-        else if ('toJSON' in chunk) this.transform(JSON.stringify(chunk), controller)
-        break
-      case 'symbol':
-        controller.error("Cannot send a symbol as a chunk part")
-        break
-      case 'undefined':
-        controller.error("Cannot send undefined as a chunk part")
-      default:
-        controller.enqueue(this.textencoder.encode(String(chunk)))
-        break
-  },
-  flush() { /* do any destructor work here */ }
-}
-
-class AnyToU8Stream extends TransformStream {
-  constructor() {
-    super({...transformContent, textencoder: new TextEncoder()})
-  }
-}
-
- -

TextEncoderStream および TextDecoderStream の代替

- -

なお、これはネイティブのコンストラクターを使っているため非推奨です。これは対応していないプラットフォームで代替とすることを意図しています。

- -
const tes = {
-  start(){this.encoder = new TextEncoder()},
-  transform(chunk, controller) {
-    controller.enqueue(this.encoder.encode(chunk))
-  }
-}
-let _jstes_wm = new WeakMap(); /* info holder */
-class JSTextEncoderStream extends TransformStream {
-  constructor() {
-    let t = {...tes}
-
-    super(t)
-    _jstes_wm.set(this, t)
-  }
-  get encoding() {return _jstes_wm.get(this).encoder.encoding}
-}
-
- -

同様に、 TextDecoderStream は次のように書くことができます。

- -
const tes = {
-  start(){
-    this.decoder = new TextDecoder(this.encoding, this.options)
-  },
-  transform(chunk, controller) {
-    controller.enqueue(this.decoder.decode(chunk))
-  }
-}
-let _jstds_wm = new WeakMap(); /* info holder */
-class JSTextDecoderStream extends TransformStream {
-  constructor(encoding = 'utf-8', {...options} = {}) {
-    let t = {...tds, encoding, options}
-
-    super(t)
-    _jstes_wm.set(this, t)
-  }
-  get encoding() {return _jstds_wm.get(this).decoder.encoding}
-  get fatal() {return _jstds_wm.get(this).decoder.fatal}
-  get ignoreBOM() {return _jstds_wm.get(this).decoder.ignoreBOM}
-}
-
- -

複数の ReadableStreams を互いに結合

- -

これは、複数のストリームを結合できる便利なものです。例ではプログレッシブ読み込みやプログレッシブストリーミングを持つ PWA の構築が含まれます。

- -
let responses = [ /* conjoined response tree */ ]
-let {readable, writable} = new TransformStream
-
-responses.reduce(
-  (a, res, i, arr) => a.then(() => res.pipeTo(writable, {preventClose: (i+1) !== arr.length})),
-  Promise.resolve()
-)
-
- -

これは他への影響に対して耐性がないことに注意してください。

- -

仕様書

- - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName('Media Capture', '#dom-mediastream', 'MediaStream')}}{{Spec2('Media Capture')}}初回定義
- -

ブラウザーの互換性

- -

{{Compat("api.TransformStream")}}

- -

関連情報

- - diff --git a/files/ja/web/api/transformstream/index.md b/files/ja/web/api/transformstream/index.md new file mode 100644 index 00000000000000..7c5997ea22dd1a --- /dev/null +++ b/files/ja/web/api/transformstream/index.md @@ -0,0 +1,151 @@ +--- +title: TransformStream +slug: Web/API/TransformStream +tags: + - API + - Interface + - Streams API + - TransformStream + - Web + - インターフェイス +translation_of: Web/API/TransformStream +--- +{{APIRef("Media Capture and Streams")}} + +`TransformStream` は [Streams API](/ja/docs/Web/API/Streams_API) のインターフェイスで一連の変換可能なデータを表します。 + +## コンストラクター + +- {{domxref("TransformStream.TransformStream", "TransformStream()")}} + - : 指定されたハンドラーから変換ストリームを作成して返却します。 + +## プロパティ + +- {{domxref("TransformStream.readable")}} {{readonlyInline}} + - : TransformStream の `readable` 側の端点です。 +- {{domxref("TransformStream.writable")}} {{readonlyInline}} + - : TransformStream の `writable` 側の端点です。 + +## メソッド + +なし + +## 例 + +### 何かを uint8array に変換するストリーム + +以下の例では、変換ストリームは受信したすべてのチャンクを {{domxref("Uint8Array")}} の値に渡します。 + +```js +const transformContent = { + start() {}, // required. + async transform(chunk, controller) { + chunk = await chunk + switch (typeof chunk) { + case 'object': + // just say the stream is done I guess + if (chunk === null) controller.terminate() + else if (ArrayBuffer.isView(chunk)) + controller.enqueue(new Uint8Array(chunk.buffer, chunk.byteOffset, chunk.byteLength)) + else if (Array.isArray(chunk) && chunk.every(value => typeof value === 'number')) + controller.enqueue(new Uint8Array(chunk)) + else if ('function' === typeof chunk.valueOf && chunk.valueOf() !== chunk) + this.transform(chunk.valueOf(), controller) // hack + else if ('toJSON' in chunk) this.transform(JSON.stringify(chunk), controller) + break + case 'symbol': + controller.error("Cannot send a symbol as a chunk part") + break + case 'undefined': + controller.error("Cannot send undefined as a chunk part") + default: + controller.enqueue(this.textencoder.encode(String(chunk))) + break + }, + flush() { /* do any destructor work here */ } +} + +class AnyToU8Stream extends TransformStream { + constructor() { + super({...transformContent, textencoder: new TextEncoder()}) + } +} +``` + +### TextEncoderStream および TextDecoderStream の代替 + +なお、これはネイティブのコンストラクターを使っているため非推奨です。これは対応していないプラットフォームで代替とすることを意図しています。 + +```js +const tes = { + start(){this.encoder = new TextEncoder()}, + transform(chunk, controller) { + controller.enqueue(this.encoder.encode(chunk)) + } +} +let _jstes_wm = new WeakMap(); /* info holder */ +class JSTextEncoderStream extends TransformStream { + constructor() { + let t = {...tes} + + super(t) + _jstes_wm.set(this, t) + } + get encoding() {return _jstes_wm.get(this).encoder.encoding} +} +``` + +同様に、 TextDecoderStream は次のように書くことができます。 + +```js +const tes = { + start(){ + this.decoder = new TextDecoder(this.encoding, this.options) + }, + transform(chunk, controller) { + controller.enqueue(this.decoder.decode(chunk)) + } +} +let _jstds_wm = new WeakMap(); /* info holder */ +class JSTextDecoderStream extends TransformStream { + constructor(encoding = 'utf-8', {...options} = {}) { + let t = {...tds, encoding, options} + + super(t) + _jstes_wm.set(this, t) + } + get encoding() {return _jstds_wm.get(this).decoder.encoding} + get fatal() {return _jstds_wm.get(this).decoder.fatal} + get ignoreBOM() {return _jstds_wm.get(this).decoder.ignoreBOM} +} +``` + +### 複数の ReadableStreams を互いに結合 + +これは、複数のストリームを結合できる便利なものです。例ではプログレッシブ読み込みやプログレッシブストリーミングを持つ PWA の構築が含まれます。 + +```js +let responses = [ /* conjoined response tree */ ] +let {readable, writable} = new TransformStream + +responses.reduce( + (a, res, i, arr) => a.then(() => res.pipeTo(writable, {preventClose: (i+1) !== arr.length})), + Promise.resolve() +) +``` + +これは他への影響に対して耐性がないことに注意してください。 + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| ------------------------------------------------------------------------------------ | ------------------------------------ | -------- | +| {{SpecName('Media Capture', '#dom-mediastream', 'MediaStream')}} | {{Spec2('Media Capture')}} | 初回定義 | + +## ブラウザーの互換性 + +{{Compat("api.TransformStream")}} + +## 関連情報 + +- [WHATWG Stream Visualiser](https://whatwg-stream-visualizer.glitch.me/): 読み取り、書き込み、変換ストリームの基本的な視覚化 diff --git a/files/ja/web/api/transitionevent/index.html b/files/ja/web/api/transitionevent/index.html deleted file mode 100644 index 72371099c876e2..00000000000000 --- a/files/ja/web/api/transitionevent/index.html +++ /dev/null @@ -1,87 +0,0 @@ ---- -title: TransitionEvent -slug: Web/API/TransitionEvent -tags: - - API - - CSS - - CSS3 Transitions - - CSSOM - - Experimental - - Reference -translation_of: Web/API/TransitionEvent ---- -

{{APIRef("CSSOM")}} {{SeeCompatTable}}

- -

TransitionEvent インターフェイスは、トランジションに関する情報を提供するイベントを表します。

- -

コンストラクター

- -
-
{{domxref("TransitionEvent.TransitionEvent", "TransitionEvent()")}}
-
指定された引数で TransitionEvent イベントを作成します。
-
- -

プロパティ

- -

親である {{domxref("Event")}} から継承したプロパティもあります。

- -
-
{{domxref("TransitionEvent.propertyName")}} {{readonlyInline}}
-
{{domxref("DOMString")}} で、トランジションに関連付けられた CSS プロパティの名前が入ります。
-
{{domxref("TransitionEvent.elapsedTime")}} {{readonlyInline}}
-
float で、このイベントが発生した時点でトランジションが実行している時間を秒単位で表します。この値は {{cssxref("transition-delay")}} プロパティの影響を受けません。
-
{{domxref("TransitionEvent.pseudoElement")}} {{readonlyInline}}
-
{{domxref("DOMString")}} で、 :: で始まる、アニメーションが実行される擬似要素の名前が入ります。トランジションが擬似要素上ではなく要素上で実行されている場合は、空文字列 '' になります。
-
- -

TransitionEvent の種類

- -
-
{{domxref("HTMLElement.transitioncancel_event", "transitioncancel")}}
-
{{domxref("Event")}} で、 CSS トランジションが中断されたときに発生します。
-
{{domxref("HTMLElement.transitionend_event", "transitionend")}}
-
{{domxref("Event")}} で、 CSS トランジションの実行が終了したときに発生します。
-
{{domxref("HTMLElement.transitionrun_event", "transitionrun")}}
-
{{domxref("Event")}} で、 CSS トランジションが生成されたとき、実行中のトランジションに追加されたときに発生し、必ずしも開始時に発生するとは限りません。
-
{{domxref("HTMLElement.transitionstart_event", "transitionstart")}}
-
{{domxref("Event")}} で、 CSS トランジションの推移が開始したときに発生します。
-
- -

メソッド

- -

親である {{domxref("Event")}} から継承したプロパティもあります。

- -
-
{{domxref("TransitionEvent.initTransitionEvent()")}} {{non-standard_inline}}{{deprecated_inline}}
-
非推奨の {{domxref("Document.createEvent()", "Document.createEvent(\"TransitionEvent\")")}} メソッドを使用して生成された TransitionEvent を初期化します。
-
- -

仕様書

- - - - - - - - - - - - - - - - -
仕様書状態備考
{{ SpecName('CSS3 Transitions', '#interface-transitionevent', 'TransitionEvent') }}{{ Spec2('CSS3 Transitions') }}初回定義
- -

ブラウザーの互換性

- -

{{Compat("api.TransitionEvent")}}

- -

関連情報

- - diff --git a/files/ja/web/api/transitionevent/index.md b/files/ja/web/api/transitionevent/index.md new file mode 100644 index 00000000000000..cdbe5825e5b2e2 --- /dev/null +++ b/files/ja/web/api/transitionevent/index.md @@ -0,0 +1,64 @@ +--- +title: TransitionEvent +slug: Web/API/TransitionEvent +tags: + - API + - CSS + - CSS3 Transitions + - CSSOM + - Experimental + - Reference +translation_of: Web/API/TransitionEvent +--- +{{APIRef("CSSOM")}} {{SeeCompatTable}} + +**`TransitionEvent`** インターフェイスは、[トランジション](/ja/docs/Web/Guide/CSS/Using_CSS_transitions)に関する情報を提供するイベントを表します。 + +## コンストラクター + +- {{domxref("TransitionEvent.TransitionEvent", "TransitionEvent()")}} + - : 指定された引数で `TransitionEvent` イベントを作成します。 + +## プロパティ + +_親である {{domxref("Event")}} から継承したプロパティもあります。_ + +- {{domxref("TransitionEvent.propertyName")}} {{readonlyInline}} + - : {{domxref("DOMString")}} で、トランジションに関連付けられた CSS プロパティの名前が入ります。 +- {{domxref("TransitionEvent.elapsedTime")}} {{readonlyInline}} + - : `float` で、このイベントが発生した時点でトランジションが実行している時間を秒単位で表します。この値は {{cssxref("transition-delay")}} プロパティの影響を受けません。 +- {{domxref("TransitionEvent.pseudoElement")}} {{readonlyInline}} + - : {{domxref("DOMString")}} で、 `::` で始まる、アニメーションが実行される[擬似要素](/ja/docs/Web/CSS/Pseudo-elements)の名前が入ります。トランジションが擬似要素上ではなく要素上で実行されている場合は、空文字列 `''` になります。 + +## `TransitionEvent` の種類 + +- {{domxref("HTMLElement.transitioncancel_event", "transitioncancel")}} + - : {{domxref("Event")}} で、 [CSS トランジション](/ja/docs/Web/CSS/CSS_Transitions)が中断されたときに発生します。 +- {{domxref("HTMLElement.transitionend_event", "transitionend")}} + - : {{domxref("Event")}} で、 [CSS トランジション](/ja/docs/Web/CSS/CSS_Transitions)の実行が終了したときに発生します。 +- {{domxref("HTMLElement.transitionrun_event", "transitionrun")}} + - : {{domxref("Event")}} で、 [CSS トランジション](/ja/docs/Web/CSS/CSS_Transitions)が生成されたとき、実行中のトランジションに追加されたときに発生し、必ずしも開始時に発生するとは限りません。 +- {{domxref("HTMLElement.transitionstart_event", "transitionstart")}} + - : {{domxref("Event")}} で、 [CSS トランジション](/ja/docs/Web/CSS/CSS_Transitions)の推移が開始したときに発生します。 + +## メソッド + +_親である {{domxref("Event")}} から継承したプロパティもあります。_ + +- {{domxref("TransitionEvent.initTransitionEvent()")}} {{non-standard_inline}}{{deprecated_inline}} + - : 非推奨の {{domxref("Document.createEvent()", "Document.createEvent(\"TransitionEvent\")")}} メソッドを使用して生成された `TransitionEvent` を初期化します。 + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------- | -------- | +| {{ SpecName('CSS3 Transitions', '#interface-transitionevent', 'TransitionEvent') }} | {{ Spec2('CSS3 Transitions') }} | 初回定義 | + +## ブラウザーの互換性 + +{{Compat("api.TransitionEvent")}} + +## 関連情報 + +- [CSS トランジションの使用](/ja/docs/Web/Guide/CSS/Using_CSS_transitions) +- CSS プロパティ: {{cssxref("transition")}}, {{cssxref("transition-delay")}}, {{cssxref("transition-duration")}}, {{cssxref("transition-property")}}, {{cssxref("transition-timing-function")}}. diff --git a/files/ja/web/api/transitionevent/pseudoelement/index.html b/files/ja/web/api/transitionevent/pseudoelement/index.html deleted file mode 100644 index d92ffe28e518c1..00000000000000 --- a/files/ja/web/api/transitionevent/pseudoelement/index.html +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: TransitionEvent.pseudoElement -slug: Web/API/TransitionEvent/pseudoElement -tags: - - API - - CSS - - CSS3 Transitions - - CSSOM - - Experimental - - Property - - Reference - - TransitionEvent -translation_of: Web/API/TransitionEvent/pseudoElement ---- -

{{ apiref("CSSOM") }} {{SeeCompatTable}}

- -

TransitionEvent.pseudoElement 読み取り専用プロパティは、 {{domxref("DOMString")}} であり、 '::' で始まり、アニメーションが実行される疑似要素の名前が含まれています。トランジションが擬似要素で実行されない場合は、要素は空文字です: ''

- -

構文

- -
name = TransitionEvent.pseudoElement
- -

仕様

- - - - - - - - - - - - - - - - -
仕様ステータス備考
{{ SpecName('CSS3 Transitions', '#Events-TransitionEvent-pseudoElement', 'TransitionEvent.pseudoElement') }}{{ Spec2('CSS3 Transitions')}}初回定義。
- -

ブラウザー実装状況

- - - -

{{Compat("api.TransitionEvent.pseudoElement")}}

- -

関連項目

- - diff --git a/files/ja/web/api/transitionevent/pseudoelement/index.md b/files/ja/web/api/transitionevent/pseudoelement/index.md new file mode 100644 index 00000000000000..e2886cdd97bb16 --- /dev/null +++ b/files/ja/web/api/transitionevent/pseudoelement/index.md @@ -0,0 +1,36 @@ +--- +title: TransitionEvent.pseudoElement +slug: Web/API/TransitionEvent/pseudoElement +tags: + - API + - CSS + - CSS3 Transitions + - CSSOM + - Experimental + - Property + - Reference + - TransitionEvent +translation_of: Web/API/TransitionEvent/pseudoElement +--- +{{ apiref("CSSOM") }} {{SeeCompatTable}} + +**`TransitionEvent.pseudoElement`** 読み取り専用プロパティは、 {{domxref("DOMString")}} であり、 `'::'` で始まり、アニメーションが実行される[疑似要素](/ja/docs/Web/CSS/Pseudo-elements "/en-US/docs/Web/CSS/Pseudo-elements")の名前が含まれています。トランジションが擬似要素で実行されない場合は、要素は空文字です: `''` 。 + +## 構文 + + name = TransitionEvent.pseudoElement + +## 仕様 + +| 仕様 | ステータス | 備考 | +| ------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------- | ---------- | +| {{ SpecName('CSS3 Transitions', '#Events-TransitionEvent-pseudoElement', 'TransitionEvent.pseudoElement') }} | {{ Spec2('CSS3 Transitions')}} | 初回定義。 | + +## ブラウザー実装状況 + +{{Compat("api.TransitionEvent.pseudoElement")}} + +## 関連項目 + +- [CSS トランジションの使用](/ja/docs/Web/Guide/CSS/Using_CSS_transitions) +- {{cssxref("transition")}}, {{cssxref("transition-delay")}}, {{cssxref("transition-duration")}}, {{cssxref("transition-property")}}, {{cssxref("transition-timing-function")}}. diff --git a/files/ja/web/api/url/createobjecturl/index.html b/files/ja/web/api/url/createobjecturl/index.html deleted file mode 100644 index e65c184c90b869..00000000000000 --- a/files/ja/web/api/url/createobjecturl/index.html +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: URL.createObjectURL() -slug: Web/API/URL/createObjectURL -tags: - - API - - Blob - - DOM - - Reference - - URL - - URL API - - createObjectURL -translation_of: Web/API/URL/createObjectURL ---- -

URL.createObjectURL() 静的メソッドは、引数で指定されたオブジェクトを表す URL を含む {{domxref("DOMString")}} を生成します。 URL の寿命は、それを作成したウィンドウ内の {{domxref("document")}} と結び付けられています。 新しいオブジェクト URL は、指定された {{domxref("File")}} オブジェクトか {{domxref("Blob")}} オブジェクトを表します。

- -

オブジェクト URL を解放するには、 {{domxref("URL.revokeObjectURL", "revokeObjectURL()")}} を呼び出してください。

- -

{{AvailableInWorkers}}

- -
-

メモ: この機能はメモリリークを生み出す可能性があるため、サービスワーカー内で利用することはできません

-
- -

構文

- -
objectURL = URL.createObjectURL(object);
-
- -

引数

- -
-
object
-
オブジェクト URL を生成するための {{domxref("File")}}, {{domxref("Blob")}}, {{domxref("MediaSource")}} の何れかのオブジェクトです。
-
- -

返値

- -

object で指定された内容を参照するために使用されるオブジェクト URL を含んだ {{domxref("DOMString")}} です。

- -

- -

オブジェクト URL で画像を表示を参照してください。

- -

使用上のメモ

- -

メモリ管理

- -

すでにオブジェクト URL が生成されている場合でも、 createObjectURL() を呼び出す度に、新しいオブジェクト URL が生成されます。 必要がなくなったら {{domxref("URL.revokeObjectURL()")}} を呼び出して、それぞれを解放してください。

- -

ブラウザーは、文書がアンロードされた際にこれらのオブジェクト URL をメモリから解放します。 しかし、性能とメモリ使用を考慮すると、明示的にアンロードできる安全な機会があるならば、そうするべきです。

- -

メディアストリームのオブジェクト URL の使用

- -

古いバージョンの Media Source 仕様書では、 {{HTMLElement("video")}} 要素にストリームを添付するには {{domxref("MediaStream")}} にオブジェクト URL を生成する必要があるとしてます。 これはもう必要なく、ブラウザーはこのようにする対応を削除してきています。

- -
-

重要: もし {{domxref("URL.createObjectURL", "createObjectURL()")}} でメディア要素にストリームを割り当てるコードが残っているのであれば、単純に {{domxref("HTMLMediaElement.srcObject", "srcObject")}} を直接 MediaStream に設定するよう更新する必要があります。

-
- -

仕様書

- - - - - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName('File API', '#dfn-createObjectURL', 'createObjectURL()')}}{{Spec2('File API')}}初回定義
{{SpecName('Media Source Extensions', '#dom-url-createobjecturl', 'URL')}}{{Spec2('Media Source Extensions')}} -

MediaSource 拡張

- -

Older versions of this specification used createObjectURL() for {{domxref("MediaStream")}} objects; this is no longer supported.

-
- -

ブラウザーの対応

- -

{{Compat("api.URL.createObjectURL")}}

- -

関連情報

- - - -
{{APIRef("URL")}}
diff --git a/files/ja/web/api/url/createobjecturl/index.md b/files/ja/web/api/url/createobjecturl/index.md new file mode 100644 index 00000000000000..8e57940199deff --- /dev/null +++ b/files/ja/web/api/url/createobjecturl/index.md @@ -0,0 +1,72 @@ +--- +title: URL.createObjectURL() +slug: Web/API/URL/createObjectURL +tags: + - API + - Blob + - DOM + - Reference + - URL + - URL API + - createObjectURL +translation_of: Web/API/URL/createObjectURL +--- +**`URL.createObjectURL()`** 静的メソッドは、引数で指定されたオブジェクトを表す URL を含む {{domxref("DOMString")}} を生成します。 URL の寿命は、それを作成したウィンドウ内の {{domxref("document")}} と結び付けられています。 新しいオブジェクト URL は、指定された {{domxref("File")}} オブジェクトか {{domxref("Blob")}} オブジェクトを表します。 + +オブジェクト URL を解放するには、 {{domxref("URL.revokeObjectURL", "revokeObjectURL()")}} を呼び出してください。 + +{{AvailableInWorkers}} + +> **Note:** **メモ:** この機能はメモリリークを生み出す可能性があるため、[サービスワーカー](/ja/docs/Web/API/Service_Worker_API)内で利用することは*できません*。 + +## 構文 + + objectURL = URL.createObjectURL(object); + +### 引数 + +- `object` + - : オブジェクト URL を生成するための {{domxref("File")}}, {{domxref("Blob")}}, {{domxref("MediaSource")}} の何れかのオブジェクトです。 + +### 返値 + +`object` で指定された内容を参照するために使用されるオブジェクト URL を含んだ {{domxref("DOMString")}} です。 + +## 例 + +[オブジェクト URL で画像を表示](/ja/docs/Web/API/File/Using_files_from_web_applications#例_オブジェクト_url_で画像を表示)を参照してください。 + +## 使用上のメモ + +### メモリ管理 + +すでにオブジェクト URL が生成されている場合でも、 `createObjectURL()` を呼び出す度に、新しいオブジェクト URL が生成されます。 必要がなくなったら {{domxref("URL.revokeObjectURL()")}} を呼び出して、それぞれを解放してください。 + +ブラウザーは、文書がアンロードされた際にこれらのオブジェクト URL をメモリから解放します。 しかし、性能とメモリ使用を考慮すると、明示的にアンロードできる安全な機会があるならば、そうするべきです。 + +### メディアストリームのオブジェクト URL の使用 + +古いバージョンの Media Source 仕様書では、 {{HTMLElement("video")}} 要素にストリームを添付するには {{domxref("MediaStream")}} にオブジェクト URL を生成する必要があるとしてます。 これはもう必要なく、ブラウザーはこのようにする対応を削除してきています。 + +> **Warning:** **重要:** もし {{domxref("URL.createObjectURL", "createObjectURL()")}} でメディア要素にストリームを割り当てるコードが残っているのであれば、単純に {{domxref("HTMLMediaElement.srcObject", "srcObject")}} を直接 `MediaStream` に設定するよう更新する必要があります。 + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| ---------------------------------------------------------------------------------------------------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| {{SpecName('File API', '#dfn-createObjectURL', 'createObjectURL()')}} | {{Spec2('File API')}} | 初回定義 | +| {{SpecName('Media Source Extensions', '#dom-url-createobjecturl', 'URL')}} | {{Spec2('Media Source Extensions')}} | MediaSource 拡張 Older versions of this specification used `createObjectURL()` for {{domxref("MediaStream")}} objects; this is no longer supported. | + +## ブラウザーの対応 + +{{Compat("api.URL.createObjectURL")}} + +## 関連情報 + +- [Web アプリケーションからファイルを扱う](/ja/docs/Web/API/File/Using_files_from_web_applications) +- [オブジェクト URL で画像を表示](/ja/docs/Web/API/File/Using_files_from_web_applications#例_オブジェクト_url_で画像を表示) +- {{domxref("URL.revokeObjectURL()")}} +- {{domxref("HTMLMediaElement.srcObject")}} +- {{domxref("FileReader.readAsDataURL()")}} + +{{APIRef("URL")}} diff --git a/files/ja/web/api/url/hash/index.html b/files/ja/web/api/url/hash/index.html deleted file mode 100644 index 40b4505b6cbf68..00000000000000 --- a/files/ja/web/api/url/hash/index.html +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: URL.hash -slug: Web/API/URL/hash -tags: - - API - - Hash - - Property - - Reference - - URL -translation_of: Web/API/URL/hash ---- -
{{ APIRef("URL API") }}
- -

{{domxref("URL")}} インターフェイスの hash プロパティは、'#' の後に URL のフラグメント識別子が続く {{domxref("USVString")}} を返します。

- -

フラグメントはパーセントデコードされていません。 URL にフラグメント識別子がない場合、このプロパティには空の文字列 "" が含まれます。

- -

{{AvailableInWorkers}}

- -

構文

- -
string = object.hash;
-object.hash = string;
-
- -

- -

{{domxref("USVString")}}。

- -

- -
var url = new URL('https://developer.mozilla.org/en-US/docs/Web/API/URL/href#Examples');
-url.hash // '#Examples' を返します
- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('URL', '#dom-url-hash', 'URL.hash')}}{{Spec2('URL')}}初期定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.URL.hash")}}

- -

関連情報

- - diff --git a/files/ja/web/api/url/hash/index.md b/files/ja/web/api/url/hash/index.md new file mode 100644 index 00000000000000..161fb89f9ba5fe --- /dev/null +++ b/files/ja/web/api/url/hash/index.md @@ -0,0 +1,48 @@ +--- +title: URL.hash +slug: Web/API/URL/hash +tags: + - API + - Hash + - Property + - Reference + - URL +translation_of: Web/API/URL/hash +--- +{{ APIRef("URL API") }} + +{{domxref("URL")}} インターフェイスの **`hash`** プロパティは、`'#'` の後に URL のフラグメント識別子が続く {{domxref("USVString")}} を返します。 + +フラグメントは[パーセントデコード](/ja/docs/Glossary/percent-encoding)されていません。 URL にフラグメント識別子がない場合、このプロパティには空の文字列 `""` が含まれます。 + +{{AvailableInWorkers}} + +## 構文 + + string = object.hash; + object.hash = string; + +### 値 + +{{domxref("USVString")}}。 + +## 例 + +```html +var url = new URL('https://developer.mozilla.org/en-US/docs/Web/API/URL/href#Examples'); +url.hash // '#Examples' を返します +``` + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------- | -------------------- | -------- | +| {{SpecName('URL', '#dom-url-hash', 'URL.hash')}} | {{Spec2('URL')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.URL.hash")}} + +## 関連情報 + +- {{domxref("URL")}} インターフェイスに属します。 diff --git a/files/ja/web/api/url/host/index.html b/files/ja/web/api/url/host/index.html deleted file mode 100644 index 1c8a57f7865933..00000000000000 --- a/files/ja/web/api/url/host/index.html +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: URL.host -slug: Web/API/URL/host -tags: - - API - - Host - - Property - - Reference - - URL -translation_of: Web/API/URL/host ---- -
{{ApiRef("URL API")}}
- -

{{domxref("URL")}} インターフェイスの host プロパティは、ホストを含む {{domxref("USVString")}} です。 ホストは、ホスト名の後に、URL のポートが空でない場合、':'、および URL のポートが続きます。

- -

{{AvailableInWorkers}}

- -

構文

- -
string = object.host;
-object.host = string;
-
- -

- -

{{domxref("USVString")}}。

- -

- -
var url = new URL('https://developer.mozilla.org/en-US/docs/Web/API/URL/host');
-var result = url.host // "developer.mozilla.org"
-
-var url = new URL('https://developer.mozilla.org:443/en-US/docs/Web/API/URL/host');
-var result = url.host // "developer.mozilla.org"
-// 443 がスキームのデフォルトポートであるため、ポート番号は含まれません
-
-var url = new URL('https://developer.mozilla.org:4097/en-US/docs/Web/API/URL/host');
-var result = url.host // "developer.mozilla.org:4097"
-
- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('URL', '#dom-url-host', 'URL.host')}}{{Spec2('URL')}}初期定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.URL.host")}}

- -

関連情報

- - diff --git a/files/ja/web/api/url/host/index.md b/files/ja/web/api/url/host/index.md new file mode 100644 index 00000000000000..9d93001609f52e --- /dev/null +++ b/files/ja/web/api/url/host/index.md @@ -0,0 +1,53 @@ +--- +title: URL.host +slug: Web/API/URL/host +tags: + - API + - Host + - Property + - Reference + - URL +translation_of: Web/API/URL/host +--- +{{ApiRef("URL API")}} + +{{domxref("URL")}} インターフェイスの **`host`** プロパティは、ホストを含む {{domxref("USVString")}} です。 ホストは、*ホスト名*の後に、URL の*ポート*が空でない場合、`':'`、および URL の*ポート*が続きます。 + +{{AvailableInWorkers}} + +## 構文 + + string = object.host; + object.host = string; + +### 値 + +{{domxref("USVString")}}。 + +## 例 + +```js +var url = new URL('https://developer.mozilla.org/en-US/docs/Web/API/URL/host'); +var result = url.host // "developer.mozilla.org" + +var url = new URL('https://developer.mozilla.org:443/en-US/docs/Web/API/URL/host'); +var result = url.host // "developer.mozilla.org" +// 443 がスキームのデフォルトポートであるため、ポート番号は含まれません + +var url = new URL('https://developer.mozilla.org:4097/en-US/docs/Web/API/URL/host'); +var result = url.host // "developer.mozilla.org:4097" +``` + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------- | -------------------- | -------- | +| {{SpecName('URL', '#dom-url-host', 'URL.host')}} | {{Spec2('URL')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.URL.host")}} + +## 関連情報 + +- {{domxref("URL")}} インターフェイスに属します。 diff --git a/files/ja/web/api/url/hostname/index.html b/files/ja/web/api/url/hostname/index.html deleted file mode 100644 index 77f19bbe91a277..00000000000000 --- a/files/ja/web/api/url/hostname/index.html +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: URL.hostname -slug: Web/API/URL/hostname -tags: - - API - - Property - - Reference - - URL - - hostname -translation_of: Web/API/URL/hostname ---- -
{{ApiRef("URL API")}}
- -

{{domxref("URL")}} インターフェイスの hostname プロパティは、URL のドメインを含む {{domxref("USVString")}} です。

- -

{{AvailableInWorkers}}

- -

構文

- -
string = object.hostname;
-object.hostname = string;
-
- -

- -

{{domxref("USVString")}}。

- -

- -
var url = new URL('https://developer.mozilla.org/en-US/docs/Web/API/URL/hostname');
-var result = url.hostname; // 戻り値: 'developer.mozilla.org'
- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('URL', '#dom-url-hostname', 'URL.hostname')}}{{Spec2('URL')}}初期定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.URL.hostname")}}

- -

関連情報

- - diff --git a/files/ja/web/api/url/hostname/index.md b/files/ja/web/api/url/hostname/index.md new file mode 100644 index 00000000000000..472fb8780e4ee3 --- /dev/null +++ b/files/ja/web/api/url/hostname/index.md @@ -0,0 +1,46 @@ +--- +title: URL.hostname +slug: Web/API/URL/hostname +tags: + - API + - Property + - Reference + - URL + - hostname +translation_of: Web/API/URL/hostname +--- +{{ApiRef("URL API")}} + +{{domxref("URL")}} インターフェイスの **`hostname`** プロパティは、URL のドメインを含む {{domxref("USVString")}} です。 + +{{AvailableInWorkers}} + +## 構文 + + string = object.hostname; + object.hostname = string; + +### 値 + +{{domxref("USVString")}}。 + +## 例 + +```js +var url = new URL('https://developer.mozilla.org/en-US/docs/Web/API/URL/hostname'); +var result = url.hostname; // 戻り値: 'developer.mozilla.org' +``` + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------------------- | -------------------- | -------- | +| {{SpecName('URL', '#dom-url-hostname', 'URL.hostname')}} | {{Spec2('URL')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.URL.hostname")}} + +## 関連情報 + +- {{domxref("URL")}} インターフェイスに属します。 diff --git a/files/ja/web/api/url/href/index.html b/files/ja/web/api/url/href/index.html deleted file mode 100644 index 5bd02f0e513a92..00000000000000 --- a/files/ja/web/api/url/href/index.html +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: URL.href -slug: Web/API/URL/href -tags: - - API - - Property - - Reference - - URL - - href -translation_of: Web/API/URL/href ---- -
{{ApiRef("URL API")}}
- -

{{domxref("URL")}} インターフェイスの href プロパティは、URL 全体を含む {{domxref("USVString")}} です。

- -

{{AvailableInWorkers}}

- -

構文

- -
string = object.href;
-object.href = string;
-
- -

- -

{{domxref("USVString")}}。

- -

- -
var url = new URL('https://developer.mozilla.org/en-US/docs/Web/API/URL/href');
-var result = url.href; // 戻り値: 'https://developer.mozilla.org/en-US/docs/Web/API/URL/href'
-
- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('URL', '#dom-url-href', 'URL.href')}}{{Spec2('URL')}}初期定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.URL.href")}}

- -

関連情報

- - diff --git a/files/ja/web/api/url/href/index.md b/files/ja/web/api/url/href/index.md new file mode 100644 index 00000000000000..d57c4bb7385a0b --- /dev/null +++ b/files/ja/web/api/url/href/index.md @@ -0,0 +1,46 @@ +--- +title: URL.href +slug: Web/API/URL/href +tags: + - API + - Property + - Reference + - URL + - href +translation_of: Web/API/URL/href +--- +{{ApiRef("URL API")}} + +{{domxref("URL")}} インターフェイスの **`href`** プロパティは、URL 全体を含む {{domxref("USVString")}} です。 + +{{AvailableInWorkers}} + +## 構文 + + string = object.href; + object.href = string; + +### 値 + +{{domxref("USVString")}}。 + +## 例 + +```js +var url = new URL('https://developer.mozilla.org/en-US/docs/Web/API/URL/href'); +var result = url.href; // 戻り値: 'https://developer.mozilla.org/en-US/docs/Web/API/URL/href' +``` + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------- | -------------------- | -------- | +| {{SpecName('URL', '#dom-url-href', 'URL.href')}} | {{Spec2('URL')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.URL.href")}} + +## 関連情報 + +- {{domxref("URL")}} インターフェイスに属します。 diff --git a/files/ja/web/api/url/index.html b/files/ja/web/api/url/index.html deleted file mode 100644 index a1c213cc7ddc8b..00000000000000 --- a/files/ja/web/api/url/index.html +++ /dev/null @@ -1,151 +0,0 @@ ---- -title: URL -slug: Web/API/URL -tags: - - API - - Address - - Domain - - Interface - - Location - - Networking - - Reference - - URI - - URL API - - Web - - hostname - - href - - origin -translation_of: Web/API/URL ---- -

{{APIRef("URL API")}}

- -

URL インターフェイスは、{{glossary("URL", "URL")}} の解析、構築、正規化、およびエンコードに使用します。 URL のコンポーネントを簡単に読み取って変更できるプロパティを提供することで機能します。 通常、新しい URL オブジェクトを作成するにはコンストラクターを呼び出すときに URL を文字列として指定するか、相対 URL とベース URL を指定します。その後、解析された URL のコンポーネントを簡単に読み取ったり、URL を変更したりすることができます。

- -

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

- -

{{AvailableInWorkers}}

- -

コンストラクター

- -
-
{{domxref("URL.URL", "new URL()")}}
-
絶対 URL 文字列、または相対 URL 文字列とベース URL 文字列を使用して指定された URL を参照する URL オブジェクトを作成して返します。
-
- -

プロパティ

- -
-
{{domxref("URL.hash", "hash")}}
-
'#' に続いて URL のフラグメント識別子を含む {{domxref("USVString")}}。
-
{{domxref("URL.host", "host")}}
-
ドメイン(ホスト名)に続いて(ポートが指定されている場合)、':' と URL のポートを含む {{domxref("USVString")}}。
-
{{domxref("URL.hostname", "hostname")}}
-
URL のドメインを含む {{domxref("USVString")}}。
-
{{domxref("URL.href", "href")}}
-
URL 全体を含む {{domxref("USVString")}} を返す文字列化関数です。
-
{{domxref("URL.origin", "origin")}} {{readonlyInline}}
-
URL のオリジン、つまりそのスキーム、ドメイン、およびポートを含む {{domxref("USVString")}} を返します。
-
{{domxref("URL.password", "password")}}
-
ドメイン名の前に指定されたパスワードを含む {{domxref("USVString")}}。
-
{{domxref("URL.pathname", "pathname")}}
-
最初の '/' に続いて URL のパスを含む {{domxref("USVString")}}。
-
{{domxref("URL.port", "port")}}
-
URL のポート番号を含む {{domxref("USVString")}}。
-
{{domxref("URL.protocol", "protocol")}}
-
最後の ':' までを含めた URL のプロトコルスキームを含む {{domxref("USVString")}}。
-
{{domxref("URL.search", "search")}}
-
URL 引数文字列を示す {{domxref("USVString")}}。 引数が指定されている場合、この文字列には先頭の ? 文字で始まるすべての引数が含まれます。
-
{{domxref("URL.searchParams", "searchParams")}} {{readonlyInline}}
-
search で見つかった個々のクエリー引数にアクセスするために使用できる {{domxref("URLSearchParams")}} オブジェクト。
-
{{domxref("URL.username","username")}}
-
ドメイン名の前に指定されたユーザー名を含む {{domxref("USVString")}}。
-
- -

メソッド

- -
-
{{domxref("URL.toString", "toString()")}}
-
URL 全体を含む {{domxref("USVString")}} を返します。 {{domxref("URL.href")}} と同義ですが、値の変更に使用することはできません。
-
{{domxref("URL.toJSON", "toJSON()")}}
-
URL 全体を含む {{domxref("USVString")}} を返します。 href プロパティと同じ文字列を返します。
-
- -

静的メソッド

- -
-
{{domxref("URL.createObjectURL", "createObjectURL()")}}
-
一意の blob URL を含む {{domxref("DOMString")}} を返します。 これは、スキームとして blob: を含む URL で、その後にブラウザー内のオブジェクトを一意に識別する不透明な文字列が続きます。
-
{{domxref("URL.revokeObjectURL", "revokeObjectURL()")}}
-
{{domxref("URL.createObjectURL()")}} を使用して以前に生成したオブジェクト URL を取り消します。
-
- -

使用上の注意

- -

コンストラクターは、url 引数と、url 引数が相対 URL の場合にベースとして使用するオプションの base 引数を受け取ります。

- -
const url = new URL('../cats', 'http://www.example.com/dogs');
-console.log(url.hostname); // "www.example.com"
-console.log(url.pathname); // "/cats"
-
- -

URL を構築するために URL のプロパティを設定できます。

- -
url.hash = 'tabby';
-console.log(url.href); // "http://www.example.com/cats#tabby"
-
- -

URL は、{{RFC(3986)}} にあるルールに従ってエンコードされます。 例えば、次のとおりです。

- -
url.pathname = 'démonstration.html';
-console.log(url.href); // "http://www.example.com/d%C3%A9monstration.html"
-
- -

URL のクエリー文字列を構築および操作するために、{{domxref("URLSearchParams")}} インターフェイスを使用できます。

- -

現在のウィンドウの URL から検索引数を取得するには、次のようにします。

- -
// https://some.site/?id=123
-const parsedUrl = new URL(window.location.href);
-console.log(parsedUrl.searchParams.get("id")); // "123"
-
- -

URL の toString() メソッドは href プロパティの値を返すだけなので、コンストラクターを使用して URL を直接に正規化およびエンコードできます。

- -
const response = await fetch(new URL('http://www.example.com/démonstration.html'));
- -

仕様書

- - - - - - - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName('File API', '#creating-revoking', 'URL')}}{{Spec2('File API')}}静的メソッドの URL.createObjectURL()URL.revokeObjectURL() の追加。
{{SpecName('URL', '#api', 'API')}}{{Spec2('URL')}}初回定義 (URLUtils を実装)。
- -

ブラウザーの互換性

- -

{{Compat("api.URL")}}

- -

関連情報

- - diff --git a/files/ja/web/api/url/index.md b/files/ja/web/api/url/index.md new file mode 100644 index 00000000000000..9953dcf8e1603e --- /dev/null +++ b/files/ja/web/api/url/index.md @@ -0,0 +1,130 @@ +--- +title: URL +slug: Web/API/URL +tags: + - API + - Address + - Domain + - Interface + - Location + - Networking + - Reference + - URI + - URL API + - Web + - hostname + - href + - origin +translation_of: Web/API/URL +--- +{{APIRef("URL API")}} + +**`URL`** インターフェイスは、{{glossary("URL", "URL")}} の解析、構築、正規化、およびエンコードに使用します。 URL のコンポーネントを簡単に読み取って変更できるプロパティを提供することで機能します。 通常、新しい `URL` オブジェクトを作成するにはコンストラクターを呼び出すときに URL を文字列として指定するか、相対 URL とベース URL を指定します。その後、解析された URL のコンポーネントを簡単に読み取ったり、URL を変更したりすることができます。 + +ブラウザーがまだ {{domxref("URL.URL", "URL()")}} コンストラクターをサポートしていない場合は、{{domxref("Window")}} インターフェイスの {{domxref("Window.URL")}} プロパティを使用して `URL` オブジェクトにアクセスできます。 対象とするブラウザーのいずれかに、この接頭辞を付ける必要があるかどうかを確認してください。 + +{{AvailableInWorkers}} + +## コンストラクター + +- {{domxref("URL.URL", "new URL()")}} + - : 絶対 URL 文字列、または相対 URL 文字列とベース URL 文字列を使用して指定された URL を参照する `URL` オブジェクトを作成して返します。 + +## プロパティ + +- {{domxref("URL.hash", "hash")}} + - : `'#'` に続いて URL のフラグメント識別子を含む {{domxref("USVString")}}。 +- {{domxref("URL.host", "host")}} + - : ドメイン(_ホスト名_)に続いて(ポートが指定されている場合)、`':'` と URL の*ポート*を含む {{domxref("USVString")}}。 +- {{domxref("URL.hostname", "hostname")}} + - : URL のドメインを含む {{domxref("USVString")}}。 +- {{domxref("URL.href", "href")}} + - : URL 全体を含む {{domxref("USVString")}} を返す文字列化関数です。 +- {{domxref("URL.origin", "origin")}} {{readonlyInline}} + - : URL のオリジン、つまりそのスキーム、ドメイン、およびポートを含む {{domxref("USVString")}} を返します。 +- {{domxref("URL.password", "password")}} + - : ドメイン名の前に指定されたパスワードを含む {{domxref("USVString")}}。 +- {{domxref("URL.pathname", "pathname")}} + - : 最初の `'/'` に続いて URL のパスを含む {{domxref("USVString")}}。 +- {{domxref("URL.port", "port")}} + - : URL のポート番号を含む {{domxref("USVString")}}。 +- {{domxref("URL.protocol", "protocol")}} + - : 最後の `':'` までを含めた URL のプロトコルスキームを含む {{domxref("USVString")}}。 +- {{domxref("URL.search", "search")}} + - : URL 引数文字列を示す {{domxref("USVString")}}。 引数が指定されている場合、この文字列には先頭の `?` 文字で始まるすべての引数が含まれます。 +- {{domxref("URL.searchParams", "searchParams")}} {{readonlyInline}} + - : `search` で見つかった個々のクエリー引数にアクセスするために使用できる {{domxref("URLSearchParams")}} オブジェクト。 +- {{domxref("URL.username","username")}} + - : ドメイン名の前に指定されたユーザー名を含む {{domxref("USVString")}}。 + +## メソッド + +- {{domxref("URL.toString", "toString()")}} + - : URL 全体を含む {{domxref("USVString")}} を返します。 {{domxref("URL.href")}} と同義ですが、値の変更に使用することはできません。 +- {{domxref("URL.toJSON", "toJSON()")}} + - : URL 全体を含む {{domxref("USVString")}} を返します。 `href` プロパティと同じ文字列を返します。 + +## 静的メソッド + +- {{domxref("URL.createObjectURL", "createObjectURL()")}} + - : 一意の blob URL を含む {{domxref("DOMString")}} を返します。 これは、スキームとして `blob:` を含む URL で、その後にブラウザー内のオブジェクトを一意に識別する不透明な文字列が続きます。 +- {{domxref("URL.revokeObjectURL", "revokeObjectURL()")}} + - : {{domxref("URL.createObjectURL()")}} を使用して以前に生成したオブジェクト URL を取り消します。 + +## 使用上の注意 + +コンストラクターは、`url` 引数と、`url` 引数が相対 URL の場合にベースとして使用するオプションの `base` 引数を受け取ります。 + +```js +const url = new URL('../cats', 'http://www.example.com/dogs'); +console.log(url.hostname); // "www.example.com" +console.log(url.pathname); // "/cats" +``` + +URL を構築するために URL のプロパティを設定できます。 + +```js +url.hash = 'tabby'; +console.log(url.href); // "http://www.example.com/cats#tabby" +``` + +URL は、{{RFC(3986)}} にあるルールに従ってエンコードされます。 例えば、次のとおりです。 + +```js +url.pathname = 'démonstration.html'; +console.log(url.href); // "http://www.example.com/d%C3%A9monstration.html" +``` + +URL のクエリー文字列を構築および操作するために、{{domxref("URLSearchParams")}} インターフェイスを使用できます。 + +現在のウィンドウの URL から検索引数を取得するには、次のようにします。 + +```js +// https://some.site/?id=123 +const parsedUrl = new URL(window.location.href); +console.log(parsedUrl.searchParams.get("id")); // "123" +``` + +URL の `toString()` メソッドは `href` プロパティの値を返すだけなので、コンストラクターを使用して URL を直接に正規化およびエンコードできます。 + +```js +const response = await fetch(new URL('http://www.example.com/démonstration.html')); +``` + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| ------------------------------------------------------------------------ | ---------------------------- | -------------------------------------------------------------------------- | +| {{SpecName('File API', '#creating-revoking', 'URL')}} | {{Spec2('File API')}} | 静的メソッドの `URL.createObjectURL()` と `URL.revokeObjectURL()` の追加。 | +| {{SpecName('URL', '#api', 'API')}} | {{Spec2('URL')}} | 初回定義 (`URLUtils` を実装)。 | + +## ブラウザーの互換性 + +{{Compat("api.URL")}} + +## 関連情報 + +- [URL API](/ja/docs/Web/API/URL_API) +- [URL とは何か](/ja/docs/Learn/Common_questions/What_is_a_URL) +- `URL` オブジェクトを取得するプロパティ: {{domxref("Window.URL")}} +- {{domxref("URLSearchParams")}} diff --git a/files/ja/web/api/url/origin/index.html b/files/ja/web/api/url/origin/index.html deleted file mode 100644 index 275a99f1ab7c99..00000000000000 --- a/files/ja/web/api/url/origin/index.html +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: URL.origin -slug: Web/API/URL/origin -tags: - - API - - Property - - Read-only - - Reference - - URL - - URL API - - origin -translation_of: Web/API/URL/origin ---- -
{{APIRef("URL API")}}
- -

{{domxref("URL")}} インターフェイスの origin 読み取り専用プロパティは、表現された URL のオリジンの Unicode シリアル化を含む {{domxref("USVString")}} を返します。 正確な構造は、次のように URL のタイプによって異なります。

- - - -

{{AvailableInWorkers}}

- -

構文

- -
string = URLObject.origin;
-
- -

- -

{{domxref("USVString")}}。

- -

- -
var url = new URL("blob:https://mozilla.org:443/")
-url.origin; // 'https://mozilla.org' を返します
-
- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('URL', '#dom-url-origin', 'URL.origin')}}{{Spec2('URL')}}初期定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.URL.origin")}}

- -

関連情報

- - diff --git a/files/ja/web/api/url/origin/index.md b/files/ja/web/api/url/origin/index.md new file mode 100644 index 00000000000000..4f300cd1a679e7 --- /dev/null +++ b/files/ja/web/api/url/origin/index.md @@ -0,0 +1,51 @@ +--- +title: URL.origin +slug: Web/API/URL/origin +tags: + - API + - Property + - Read-only + - Reference + - URL + - URL API + - origin +translation_of: Web/API/URL/origin +--- +{{APIRef("URL API")}} + +{{domxref("URL")}} インターフェイスの **`origin`** 読み取り専用プロパティは、表現された URL のオリジンの Unicode シリアル化を含む {{domxref("USVString")}} を返します。 正確な構造は、次のように URL のタイプによって異なります。 + +- `http` または `https` の URL の場合、スキームの後に `'://'`、ドメイン、`':'`、ポートが順に続きます。 (ポート部分は、明示的に指定されていて、それがデフォルトポートでない場合に存在します。 それぞれのデフォルトポートは、`80` と `443` です。) +- `file:` URL の場合、値はブラウザーに依存します。 +- `blob:` URL の場合、`blob:` に続く URL のオリジンが使用されます。 例えば、`"blob:https://mozilla.org"` は `"https://mozilla.org"` として返されます。 + +{{AvailableInWorkers}} + +## 構文 + + string = URLObject.origin; + +### 値 + +{{domxref("USVString")}}。 + +## 例 + +```js +var url = new URL("blob:https://mozilla.org:443/") +url.origin; // 'https://mozilla.org' を返します +``` + +## 仕様 + +| 仕様 | 状態 | コメント | +| -------------------------------------------------------------------- | -------------------- | -------- | +| {{SpecName('URL', '#dom-url-origin', 'URL.origin')}} | {{Spec2('URL')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.URL.origin")}} + +## 関連情報 + +- {{domxref("URL")}} インターフェイスに属します。 diff --git a/files/ja/web/api/url/password/index.html b/files/ja/web/api/url/password/index.html deleted file mode 100644 index b34ee0980b4adb..00000000000000 --- a/files/ja/web/api/url/password/index.html +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: URL.password -slug: Web/API/URL/password -tags: - - API - - Property - - Reference - - URL - - password -translation_of: Web/API/URL/password ---- -
{{ApiRef("URL API")}}
- -

{{domxref("URL")}} インターフェイスの password プロパティは、ドメイン名の前に指定されたパスワードを含む {{domxref("USVString")}} です。

- -

最初に username プロパティを設定せずに設定しようとすると、静かに失敗します。

- -

{{AvailableInWorkers}}

- -

構文

- -
string = object.password;
-object.password = string;
-
- -

- -

{{domxref("USVString")}}。

- -

- -
var url = new URL('https://anonymous:flabada@developer.mozilla.org/en-US/docs/Web/API/URL/password');
-var result = url.password; // 戻り値: "flabada"
-
- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('URL', '#dom-url-password', 'URL.password')}}{{Spec2('URL')}}初期定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.URL.password")}}

- -

関連情報

- - diff --git a/files/ja/web/api/url/password/index.md b/files/ja/web/api/url/password/index.md new file mode 100644 index 00000000000000..bc960f8de051ca --- /dev/null +++ b/files/ja/web/api/url/password/index.md @@ -0,0 +1,48 @@ +--- +title: URL.password +slug: Web/API/URL/password +tags: + - API + - Property + - Reference + - URL + - password +translation_of: Web/API/URL/password +--- +{{ApiRef("URL API")}} + +{{domxref("URL")}} インターフェイスの **`password`** プロパティは、ドメイン名の前に指定されたパスワードを含む {{domxref("USVString")}} です。 + +最初に [`username`](/ja/docs/Web/API/URL/username) プロパティを設定せずに設定しようとすると、静かに失敗します。 + +{{AvailableInWorkers}} + +## 構文 + + string = object.password; + object.password = string; + +### 値 + +{{domxref("USVString")}}。 + +## 例 + +```js +var url = new URL('https://anonymous:flabada@developer.mozilla.org/en-US/docs/Web/API/URL/password'); +var result = url.password; // 戻り値: "flabada" +``` + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------------------- | -------------------- | -------- | +| {{SpecName('URL', '#dom-url-password', 'URL.password')}} | {{Spec2('URL')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.URL.password")}} + +## 関連情報 + +- {{domxref("URL")}} インターフェイスに属します。 diff --git a/files/ja/web/api/url/pathname/index.html b/files/ja/web/api/url/pathname/index.html deleted file mode 100644 index 9b7b596c8cf533..00000000000000 --- a/files/ja/web/api/url/pathname/index.html +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: URL.pathname -slug: Web/API/URL/pathname -tags: - - API - - Property - - Reference - - URL - - pathname -translation_of: Web/API/URL/pathname ---- -
{{ApiRef("URL API")}}
- -

{{domxref("URL")}} インターフェイスの pathname プロパティは、最初の '/' とその後に続く URL のパス(またはパスがない場合は空の文字列)を含む {{domxref("USVString")}} です。

- -

{{AvailableInWorkers}}

- -

構文

- -
string = object.pathname;
-object.pathname = string;
-
- -

- -

{{domxref("USVString")}}。

- -

- -
var url = new URL('https://developer.mozilla.org/en-US/docs/Web/API/URL/pathname');
-var result = url.pathname; // 戻り値: "/en-US/docs/Web/API/URL/pathname"
-
- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('URL', '#dom-url-pathname', 'URL.pathname')}}{{Spec2('URL')}}初期定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.URL.pathname")}}

- -

関連情報

- - diff --git a/files/ja/web/api/url/pathname/index.md b/files/ja/web/api/url/pathname/index.md new file mode 100644 index 00000000000000..92bff62cd15b6a --- /dev/null +++ b/files/ja/web/api/url/pathname/index.md @@ -0,0 +1,46 @@ +--- +title: URL.pathname +slug: Web/API/URL/pathname +tags: + - API + - Property + - Reference + - URL + - pathname +translation_of: Web/API/URL/pathname +--- +{{ApiRef("URL API")}} + +{{domxref("URL")}} インターフェイスの **`pathname`** プロパティは、最初の `'/'` とその後に続く URL のパス(またはパスがない場合は空の文字列)を含む {{domxref("USVString")}} です。 + +{{AvailableInWorkers}} + +## 構文 + + string = object.pathname; + object.pathname = string; + +### 値 + +{{domxref("USVString")}}。 + +## 例 + +```js +var url = new URL('https://developer.mozilla.org/en-US/docs/Web/API/URL/pathname'); +var result = url.pathname; // 戻り値: "/en-US/docs/Web/API/URL/pathname" +``` + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------------------- | -------------------- | -------- | +| {{SpecName('URL', '#dom-url-pathname', 'URL.pathname')}} | {{Spec2('URL')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.URL.pathname")}} + +## 関連情報 + +- {{domxref("URL")}} インターフェイスに属します。 diff --git a/files/ja/web/api/url/port/index.html b/files/ja/web/api/url/port/index.html deleted file mode 100644 index 470cea03af2e3e..00000000000000 --- a/files/ja/web/api/url/port/index.html +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: URL.port -slug: Web/API/URL/port -tags: - - API - - Property - - Reference - - URL - - port -translation_of: Web/API/URL/port ---- -
{{ApiRef("URL API")}}
- -

{{domxref("URL")}} インターフェイスの port プロパティは、URL のポート番号を含む {{domxref("USVString")}} です。 URL に明示的なポート番号が含まれていない場合は、'' に設定されます。

- -

{{AvailableInWorkers}}

- -

構文

- -
string = object.port;
-object.port = string;
-
- -

- -

{{domxref("USVString")}}。

- -

- -
var url = new URL('https://mydomain.com:80/svn/Repos/');
-var result = url.port; // 戻り値: '80'
-
- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('URL', '#dom-url-port', 'URL.port')}}{{Spec2('URL')}}初期定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.URL.port")}}

- -

関連情報

- - diff --git a/files/ja/web/api/url/port/index.md b/files/ja/web/api/url/port/index.md new file mode 100644 index 00000000000000..dcdf2ec91a07d5 --- /dev/null +++ b/files/ja/web/api/url/port/index.md @@ -0,0 +1,46 @@ +--- +title: URL.port +slug: Web/API/URL/port +tags: + - API + - Property + - Reference + - URL + - port +translation_of: Web/API/URL/port +--- +{{ApiRef("URL API")}} + +{{domxref("URL")}} インターフェイスの **`port`** プロパティは、URL のポート番号を含む {{domxref("USVString")}} です。 URL に明示的なポート番号が含まれていない場合は、`''` に設定されます。 + +{{AvailableInWorkers}} + +## 構文 + + string = object.port; + object.port = string; + +### 値 + +{{domxref("USVString")}}。 + +## 例 + +```js +var url = new URL('https://mydomain.com:80/svn/Repos/'); +var result = url.port; // 戻り値: '80' +``` + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------- | -------------------- | -------- | +| {{SpecName('URL', '#dom-url-port', 'URL.port')}} | {{Spec2('URL')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.URL.port")}} + +## 関連情報 + +- {{domxref("URL")}} インターフェイスに属します。 diff --git a/files/ja/web/api/url/protocol/index.html b/files/ja/web/api/url/protocol/index.html deleted file mode 100644 index 38383f3e133a7b..00000000000000 --- a/files/ja/web/api/url/protocol/index.html +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: URL.protocol -slug: Web/API/URL/protocol -tags: - - API - - Property - - Protocol - - Reference - - URL -translation_of: Web/API/URL/protocol ---- -
{{ApiRef("URL API")}}
- -

{{domxref("URL")}} インターフェイスの protocol プロパティは、最後の ':' を含む URL のプロトコルスキームを表す {{domxref("USVString")}} です。

- -

{{AvailableInWorkers}}

- -

構文

- -
string = object.protocol;
-object.protocol = string;
-
- -

- -

{{domxref("USVString")}}。

- -

- -
var url = new URL('https://developer.mozilla.org/en-US/docs/Web/API/URL/protocol');
-var result = url.protocol; // 戻り値: "https:"
-
- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('URL', '#dom-url-protocol', 'protocol')}}{{Spec2('URL')}}初期定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.URL.protocol")}}

- -

関連情報

- - diff --git a/files/ja/web/api/url/protocol/index.md b/files/ja/web/api/url/protocol/index.md new file mode 100644 index 00000000000000..d7f52e355b024e --- /dev/null +++ b/files/ja/web/api/url/protocol/index.md @@ -0,0 +1,46 @@ +--- +title: URL.protocol +slug: Web/API/URL/protocol +tags: + - API + - Property + - Protocol + - Reference + - URL +translation_of: Web/API/URL/protocol +--- +{{ApiRef("URL API")}} + +{{domxref("URL")}} インターフェイスの **`protocol`** プロパティは、最後の `':'` を含む URL のプロトコルスキームを表す {{domxref("USVString")}} です。 + +{{AvailableInWorkers}} + +## 構文 + + string = object.protocol; + object.protocol = string; + +### 値 + +{{domxref("USVString")}}。 + +## 例 + +```js +var url = new URL('https://developer.mozilla.org/en-US/docs/Web/API/URL/protocol'); +var result = url.protocol; // 戻り値: "https:" +``` + +## 仕様 + +| 仕様 | 状態 | コメント | +| -------------------------------------------------------------------- | -------------------- | -------- | +| {{SpecName('URL', '#dom-url-protocol', 'protocol')}} | {{Spec2('URL')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.URL.protocol")}} + +## 関連情報 + +- {{domxref("URL")}} インターフェイスに属します。 diff --git a/files/ja/web/api/url/revokeobjecturl/index.html b/files/ja/web/api/url/revokeobjecturl/index.html deleted file mode 100644 index b7b75ca363fff8..00000000000000 --- a/files/ja/web/api/url/revokeobjecturl/index.html +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: URL.revokeObjectURL() -slug: Web/API/URL/revokeObjectURL -tags: - - API - - DOM - - Method - - URL - - URL API - - revokeObjectURL -translation_of: Web/API/URL/revokeObjectURL ---- -
{{ApiRef("URL")}}
- -

URL.revokeObjectURL() 静的メソッドは、以前に {{domxref("URL.createObjectURL()") }} を呼び出して生成された既存のオブジェクト URL を解放します。 オブジェクト URL を使い終わったら、このメソッドを呼び出して、ファイルへの参照をこれ以上保持しないようにブラウザーに知らせます。

- -

{{AvailableInWorkers}}

- -
-

: このメソッドは、{{domxref("Blob")}} インターフェイスのライフサイクルの問題とリークの可能性があるため、サービスワーカーからは利用できません。

-
- -

構文

- -
window.URL.revokeObjectURL(objectURL);
-
- -

パラメーター

- -
-
objectURL
-
以前に {{domxref("URL.createObjectURL", "createObjectURL()") }} を呼び出して生成されたオブジェクト URL を表す {{domxref("DOMString")}}。
-
- -

戻り値

- -

無効。

- - - -

- -

オブジェクト URL で画像を表示を参照してください。

- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('File API', '#dfn-revokeObjectURL', 'revokeObjectURL()')}}{{Spec2('File API')}}初期定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.URL.revokeObjectURL")}}

- -

関連情報

- - diff --git a/files/ja/web/api/url/revokeobjecturl/index.md b/files/ja/web/api/url/revokeobjecturl/index.md new file mode 100644 index 00000000000000..9a86076d176d89 --- /dev/null +++ b/files/ja/web/api/url/revokeobjecturl/index.md @@ -0,0 +1,52 @@ +--- +title: URL.revokeObjectURL() +slug: Web/API/URL/revokeObjectURL +tags: + - API + - DOM + - Method + - URL + - URL API + - revokeObjectURL +translation_of: Web/API/URL/revokeObjectURL +--- +{{ApiRef("URL")}} + +**`URL.revokeObjectURL()`** 静的メソッドは、以前に {{domxref("URL.createObjectURL()") }} を呼び出して生成された既存のオブジェクト URL を解放します。 オブジェクト URL を使い終わったら、このメソッドを呼び出して、ファイルへの参照をこれ以上保持しないようにブラウザーに知らせます。 + +{{AvailableInWorkers}} + +> **Note:** **注**: このメソッドは、{{domxref("Blob")}} インターフェイスのライフサイクルの問題とリークの可能性があるため、サービスワーカーからは利用できません。 + +## 構文 + + window.URL.revokeObjectURL(objectURL); + +### パラメーター + +- `objectURL` + - : 以前に {{domxref("URL.createObjectURL", "createObjectURL()") }} を呼び出して生成されたオブジェクト URL を表す {{domxref("DOMString")}}。 + +### 戻り値 + +無効。 + +## 例 + +[オブジェクト URL で画像を表示](/ja/docs/Web/API/File/Using_files_from_web_applications#例_オブジェクト_url_で画像を表示)を参照してください。 + +## 仕様 + +| 仕様 | 状態 | コメント | +| -------------------------------------------------------------------------------------------- | ---------------------------- | -------- | +| {{SpecName('File API', '#dfn-revokeObjectURL', 'revokeObjectURL()')}} | {{Spec2('File API')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.URL.revokeObjectURL")}} + +## 関連情報 + +- [Web アプリケーションからファイルを扱う](/ja/docs/Web/API/File/Using_files_from_web_applications) +- [オブジェクト URL で画像を表示](/ja/docs/Web/API/File/Using_files_from_web_applications#例_オブジェクト_url_で画像を表示) +- {{domxref("URL.createObjectURL()") }} diff --git a/files/ja/web/api/url/search/index.html b/files/ja/web/api/url/search/index.html deleted file mode 100644 index c913dfcc2f0f61..00000000000000 --- a/files/ja/web/api/url/search/index.html +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: URL.search -slug: Web/API/URL/search -tags: - - API - - Property - - Reference - - Search - - URL -translation_of: Web/API/URL/search ---- -
{{ApiRef("URL API")}}
- -

{{domxref("URL")}} インターフェイスの search プロパティは、クエリー文字列とも呼ばれる検索文字列、つまり '?' とその後に続く URL のパラメーターを含む {{domxref("USVString")}} です。

- -

最新のブラウザーでは {{domxref("URL.searchParams")}} プロパティを提供して、クエリー文字列からパラメーターを簡単に解析できるようにしています。

- -

{{AvailableInWorkers}}

- -

構文

- -
const searchParams = object.search
-url.search = newSearchParams
- -

- -

{{domxref("USVString")}}。

- -

- -
const url = new URL('https://developer.mozilla.org/ja/docs/Web/API/URL/search?q=123');
-console.log(url.search); // 戻り値: "?q=123"
-
- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('URL', '#dom-url-search', 'URL.search')}}{{Spec2('URL')}}初期定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.URL.search")}}

- -

関連情報

- - diff --git a/files/ja/web/api/url/search/index.md b/files/ja/web/api/url/search/index.md new file mode 100644 index 00000000000000..94fc45696cc260 --- /dev/null +++ b/files/ja/web/api/url/search/index.md @@ -0,0 +1,48 @@ +--- +title: URL.search +slug: Web/API/URL/search +tags: + - API + - Property + - Reference + - Search + - URL +translation_of: Web/API/URL/search +--- +{{ApiRef("URL API")}} + +{{domxref("URL")}} インターフェイスの **`search`** プロパティは、*クエリー文字列*とも呼ばれる検索文字列、つまり `'?'` とその後に続く URL のパラメーターを含む {{domxref("USVString")}} です。 + +最新のブラウザーでは {{domxref("URL.searchParams")}} プロパティを提供して、クエリー文字列からパラメーターを簡単に解析できるようにしています。 + +{{AvailableInWorkers}} + +## 構文 + + const searchParams = object.search + url.search = newSearchParams + +### 値 + +{{domxref("USVString")}}。 + +## 例 + +```js +const url = new URL('https://developer.mozilla.org/ja/docs/Web/API/URL/search?q=123'); +console.log(url.search); // 戻り値: "?q=123" +``` + +## 仕様 + +| 仕様 | 状態 | コメント | +| -------------------------------------------------------------------- | -------------------- | -------- | +| {{SpecName('URL', '#dom-url-search', 'URL.search')}} | {{Spec2('URL')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.URL.search")}} + +## 関連情報 + +- {{domxref("URL")}} インターフェイスに属します。 diff --git a/files/ja/web/api/url/searchparams/index.html b/files/ja/web/api/url/searchparams/index.html deleted file mode 100644 index 8c8b04009f14f6..00000000000000 --- a/files/ja/web/api/url/searchparams/index.html +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: URL.searchParams -slug: Web/API/URL/searchParams -tags: - - API - - Property - - Read-only - - Reference - - URL - - URLSearchParameter - - URLSearchParams - - searchParams -translation_of: Web/API/URL/searchParams ---- -
{{APIRef("URL API")}}
- -

{{domxref("URL")}} インターフェイスの searchParams 読み取り専用プロパティは、URL に含まれる GET デコードされたクエリー引数へのアクセスを可能にする {{domxref("URLSearchParams")}} オブジェクトを返します。

- -

{{AvailableInWorkers}}

- -

構文

- -
var urlSearchParams = URL.searchParams;
- -

- -

{{domxref("URLSearchParams")}} オブジェクト。

- -

- -

ページの URL が https://example.com/?name=Jonathan%20Smith&age=18 の場合、次を使用して 'name' および 'age' パラメーターを解析できます。

- -
let params = (new URL(document.location)).searchParams;
-let name = params.get('name'); // 文字列 "Jonathan Smith" です。
-let age = parseInt(params.get('age')); // 数値 18 です。
- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('URL', '#dom-url-searchparams', 'searchParams')}}{{Spec2('URL')}}初期定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.URL.searchParams")}}

diff --git a/files/ja/web/api/url/searchparams/index.md b/files/ja/web/api/url/searchparams/index.md new file mode 100644 index 00000000000000..1c843cc0ed0d45 --- /dev/null +++ b/files/ja/web/api/url/searchparams/index.md @@ -0,0 +1,47 @@ +--- +title: URL.searchParams +slug: Web/API/URL/searchParams +tags: + - API + - Property + - Read-only + - Reference + - URL + - URLSearchParameter + - URLSearchParams + - searchParams +translation_of: Web/API/URL/searchParams +--- +{{APIRef("URL API")}} + +{{domxref("URL")}} インターフェイスの **`searchParams`** 読み取り専用プロパティは、URL に含まれる GET デコードされたクエリー引数へのアクセスを可能にする {{domxref("URLSearchParams")}} オブジェクトを返します。 + +{{AvailableInWorkers}} + +## 構文 + + var urlSearchParams = URL.searchParams; + +### 値 + +{{domxref("URLSearchParams")}} オブジェクト。 + +## 例 + +ページの URL が `https://example.com/?name=Jonathan%20Smith&age=18` の場合、次を使用して 'name' および 'age' パラメーターを解析できます。 + +```js +let params = (new URL(document.location)).searchParams; +let name = params.get('name'); // 文字列 "Jonathan Smith" です。 +let age = parseInt(params.get('age')); // 数値 18 です。 +``` + +## 仕様 + +| 仕様 | 状態 | コメント | +| -------------------------------------------------------------------------------- | -------------------- | -------- | +| {{SpecName('URL', '#dom-url-searchparams', 'searchParams')}} | {{Spec2('URL')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.URL.searchParams")}} diff --git a/files/ja/web/api/url/tojson/index.html b/files/ja/web/api/url/tojson/index.html deleted file mode 100644 index 4b9af2c147f48e..00000000000000 --- a/files/ja/web/api/url/tojson/index.html +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: URL.toJSON() -slug: Web/API/URL/toJSON -tags: - - API - - Method - - Reference - - URL - - toJSON - - toJSON() -translation_of: Web/API/URL/toJSON ---- -
{{APIRef("URL API")}}
- -

{{domxref("URL")}} インターフェイスの toJSON() メソッドは、URL のシリアル化されたバージョンを含む {{domxref("USVString")}} を返しますが、実際には {{domxref("URL.toString()")}} と同じ効果があるようです。

- -

(訳注:このメソッドは、{{jsxref("JSON.stringify()")}} メソッドが、このメソッドを持つオブジェクトを JSON 文字列に変換するために使います。)

- -

{{AvailableInWorkers}}

- -

構文

- -
json = url.toJSON();
- -

パラメーター

- -

なし。

- -

戻り値

- -

{{domxref("USVString")}}。

- -

- -
const url = new URL("https://developer.mozilla.org/en-US/docs/Web/API/URL/toString");
-url.toJSON()
-
- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('URL', '#dom-url-tojson', 'toJSON()')}}{{Spec2('URL')}}初期定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.URL.toJSON")}}

diff --git a/files/ja/web/api/url/tojson/index.md b/files/ja/web/api/url/tojson/index.md new file mode 100644 index 00000000000000..509ebcaabfbe1c --- /dev/null +++ b/files/ja/web/api/url/tojson/index.md @@ -0,0 +1,46 @@ +--- +title: URL.toJSON() +slug: Web/API/URL/toJSON +tags: + - API + - Method + - Reference + - URL + - toJSON + - toJSON() +translation_of: Web/API/URL/toJSON +--- +{{APIRef("URL API")}} + +{{domxref("URL")}} インターフェイスの **`toJSON()`** メソッドは、URL のシリアル化されたバージョンを含む {{domxref("USVString")}} を返しますが、実際には {{domxref("URL.toString()")}} と同じ効果があるようです。 + +(訳注:このメソッドは、{{jsxref("JSON.stringify()")}} メソッドが、このメソッドを持つオブジェクトを JSON 文字列に変換するために使います。) + +{{AvailableInWorkers}} + +## 構文 + + json = url.toJSON(); + +### パラメーター + +なし。 + +### 戻り値 + +{{domxref("USVString")}}。 + +## 例 + + const url = new URL("https://developer.mozilla.org/en-US/docs/Web/API/URL/toString"); + url.toJSON() + +## 仕様 + +| 仕様 | 状態 | コメント | +| -------------------------------------------------------------------- | -------------------- | -------- | +| {{SpecName('URL', '#dom-url-tojson', 'toJSON()')}} | {{Spec2('URL')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.URL.toJSON")}} diff --git a/files/ja/web/api/url/tostring/index.html b/files/ja/web/api/url/tostring/index.html deleted file mode 100644 index 7508410da616b6..00000000000000 --- a/files/ja/web/api/url/tostring/index.html +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: URL.toString() -slug: Web/API/URL/toString -tags: - - API - - Method - - Reference - - Stringifier - - URL - - toString() -translation_of: Web/API/URL/toString ---- -
{{ApiRef("URL API")}}
- -

URL.toString() 文字列化メソッドは、URL 全体を含む {{domxref("USVString")}} を返します。 これは事実上、{{domxref("URL.href")}} の読み取り専用バージョンです。

- -

{{AvailableInWorkers}}

- -

構文

- -
string = url.toString();
- -

パラメーター

- -

なし。

- -

戻り値

- -

{{domxref("USVString")}}。

- -

- -
const url = new URL("https://developer.mozilla.org/en-US/docs/Web/API/URL/toString");
-url.toString() // URL を文字列として返します
-
- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('URL', '#URL-stringification-behavior', 'stringifier')}}{{Spec2('URL')}}初期定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.URL.toString")}}

- -

関連情報

- - diff --git a/files/ja/web/api/url/tostring/index.md b/files/ja/web/api/url/tostring/index.md new file mode 100644 index 00000000000000..e532da89fd0f3a --- /dev/null +++ b/files/ja/web/api/url/tostring/index.md @@ -0,0 +1,50 @@ +--- +title: URL.toString() +slug: Web/API/URL/toString +tags: + - API + - Method + - Reference + - Stringifier + - URL + - toString() +translation_of: Web/API/URL/toString +--- +{{ApiRef("URL API")}} + +`URL.toString()` 文字列化メソッドは、URL 全体を含む {{domxref("USVString")}} を返します。 これは事実上、{{domxref("URL.href")}} の読み取り専用バージョンです。 + +{{AvailableInWorkers}} + +## 構文 + + string = url.toString(); + +### パラメーター + +なし。 + +### 戻り値 + +{{domxref("USVString")}}。 + +## 例 + +```js +const url = new URL("https://developer.mozilla.org/en-US/docs/Web/API/URL/toString"); +url.toString() // URL を文字列として返します +``` + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------------------------------- | -------------------- | -------- | +| {{SpecName('URL', '#URL-stringification-behavior', 'stringifier')}} | {{Spec2('URL')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.URL.toString")}} + +## 関連情報 + +- {{domxref("URL")}} インターフェイスに属します。 diff --git a/files/ja/web/api/url/url/index.html b/files/ja/web/api/url/url/index.html deleted file mode 100644 index 8e29db898ca895..00000000000000 --- a/files/ja/web/api/url/url/index.html +++ /dev/null @@ -1,105 +0,0 @@ ---- -title: URL() -slug: Web/API/URL/URL -tags: - - API - - Constructor - - Reference - - URL - - URL API -translation_of: Web/API/URL/URL ---- -
{{APIRef("URL API")}}
- -

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

- -

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

- -

{{AvailableInWorkers}}

- -

構文

- -
url = new URL(url, [base])
-
- -

パラメーター

- -
-
url
-
絶対 URL または相対 URL を表す {{domxref("USVString")}}。url が相対 URL の場合、base は必須であり、ベース URL として使用されます。url が絶対 URL の場合、指定された base は無視されます。
-
base {{optional_inline}}
-
url が相対 URL の場合に使用するベース URL を表す {{domxref("USVString")}}。 指定しない場合のデフォルトは '' です。
-
- -
-

: 既存の {{domxref("URL")}} オブジェクトを base に使用することも可能で、オブジェクトの {{domxref("URL.href","href")}} プロパティにそれ自体を文字列化します。

-
- -

例外

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

- -
// ベース URL
-var m = 'https://developer.mozilla.org';
-var a = new URL("/", m);                                // => 'https://developer.mozilla.org/'
-var b = new URL(m);                                     // => 'https://developer.mozilla.org/'
-
-        new URL('en-US/docs', b);                      // => 'https://developer.mozilla.org/en-US/docs'
-var d = new URL('/en-US/docs', b);                     // => 'https://developer.mozilla.org/en-US/docs'
-        new URL('/en-US/docs', d);                     // => 'https://developer.mozilla.org/en-US/docs'
-        new URL('/en-US/docs', a);                     // => 'https://developer.mozilla.org/en-US/docs'
-
-        new URL('/en-US/docs', "https://developer.mozilla.org/fr-FR/toto");
-                                                       // => 'https://developer.mozilla.org/en-US/docs'
-
-        new URL('/en-US/docs', '');                    // '' は有効な URL ではないため、TypeError 例外が発生します
-        new URL('/en-US/docs');                        // '/en-US/docs' は有効な URL ではないため、TypeError 例外が発生します
-        new URL('http://www.example.com', );           // => 'http://www.example.com/'
-        new URL('http://www.example.com', b);          // => 'http://www.example.com/'
-
-        new URL("//foo.com", "https://example.com")    // => 'https://foo.com' (相対 URL を参照)
-
- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('URL', '#constructors', 'URL.URL()')}}{{Spec2('URL')}}初期定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.URL.URL")}}

- -

関連項目

- - diff --git a/files/ja/web/api/url/url/index.md b/files/ja/web/api/url/url/index.md new file mode 100644 index 00000000000000..1cbac20a7a1e41 --- /dev/null +++ b/files/ja/web/api/url/url/index.md @@ -0,0 +1,75 @@ +--- +title: URL() +slug: Web/API/URL/URL +tags: + - API + - Constructor + - Reference + - URL + - URL API +translation_of: Web/API/URL/URL +--- +{{APIRef("URL API")}} + +**`URL()`** コンストラクターは、パラメーターによって定義された URL を表す、新しく生成された {{domxref("URL")}} オブジェクトを返します。 + +与えられたベース URL または結果の URL が有効な URL でない場合、JavaScript の {{jsxref("TypeError")}} 例外がスローされます。 + +{{AvailableInWorkers}} + +## 構文 + + url = new URL(url, [base]) + +### パラメーター + +- `url` + - : 絶対 URL または相対 URL を表す {{domxref("USVString")}}。`url` が相対 URL の場合、`base` は必須であり、ベース URL として使用されます。`url` が絶対 URL の場合、指定された `base` は無視されます。 +- `base`\_ \_{{optional_inline}} + - : `url` が相対 URL の場合に使用するベース URL を表す {{domxref("USVString")}}。 指定しない場合のデフォルトは `''` です。 + +> **Note:** **注**: 既存の {{domxref("URL")}} オブジェクトを `base` に使用することも可能で、オブジェクトの {{domxref("URL.href","href")}} プロパティにそれ自体を文字列化します。 + +### 例外 + +| 例外 | 説明 | +| -------------------------------- | ----------------------------------------------------------------------------------------------- | +| {{jsxref("TypeError")}} | `url` (絶対 URL の場合) または `base` + `url` (相対 URL の場合) が、有効な URL ではありません。 | + +## 例 + +```js +// ベース URL +var m = 'https://developer.mozilla.org'; +var a = new URL("/", m); // => 'https://developer.mozilla.org/' +var b = new URL(m); // => 'https://developer.mozilla.org/' + + new URL('en-US/docs', b); // => 'https://developer.mozilla.org/en-US/docs' +var d = new URL('/en-US/docs', b); // => 'https://developer.mozilla.org/en-US/docs' + new URL('/en-US/docs', d); // => 'https://developer.mozilla.org/en-US/docs' + new URL('/en-US/docs', a); // => 'https://developer.mozilla.org/en-US/docs' + + new URL('/en-US/docs', "https://developer.mozilla.org/fr-FR/toto"); + // => 'https://developer.mozilla.org/en-US/docs' + + new URL('/en-US/docs', ''); // '' は有効な URL ではないため、TypeError 例外が発生します + new URL('/en-US/docs'); // '/en-US/docs' は有効な URL ではないため、TypeError 例外が発生します + new URL('http://www.example.com', ); // => 'http://www.example.com/' + new URL('http://www.example.com', b); // => 'http://www.example.com/' + + new URL("//foo.com", "https://example.com") // => 'https://foo.com' (相対 URL を参照) +``` + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------- | -------------------- | -------- | +| {{SpecName('URL', '#constructors', 'URL.URL()')}} | {{Spec2('URL')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.URL.URL")}} + +## 関連項目 + +- 所属しているインターフェース: {{domxref("URL")}}。 diff --git a/files/ja/web/api/url/username/index.html b/files/ja/web/api/url/username/index.html deleted file mode 100644 index 0171d64d92eb8b..00000000000000 --- a/files/ja/web/api/url/username/index.html +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: URL.username -slug: Web/API/URL/username -tags: - - API - - Property - - Reference - - URL - - username -translation_of: Web/API/URL/username ---- -
{{ApiRef("URL API")}}
- -

{{domxref("URL")}} インターフェイスの username プロパティは、ドメイン名の前に指定されたユーザー名を含む {{domxref("USVString")}} です。

- -

{{AvailableInWorkers}}

- -

構文

- -
string = object.username;
-object.username = string;
-
- -

- -

{{domxref("USVString")}}。

- -

- -
var url = new URL("https://anonymous:flabada@developer.mozilla.org/en-US/docs/Web/API/URL/username");
-var user = url.username; // 戻り値: 'anonymous'
-
- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('URL', '#dom-url-username', 'username')}}{{Spec2('URL')}}初期定義
- -

ブラウザーの互換性

- - - -

{{Compat("api.URL.username")}}

- -

関連情報

- - diff --git a/files/ja/web/api/url/username/index.md b/files/ja/web/api/url/username/index.md new file mode 100644 index 00000000000000..7d4f2236424ce3 --- /dev/null +++ b/files/ja/web/api/url/username/index.md @@ -0,0 +1,46 @@ +--- +title: URL.username +slug: Web/API/URL/username +tags: + - API + - Property + - Reference + - URL + - username +translation_of: Web/API/URL/username +--- +{{ApiRef("URL API")}} + +{{domxref("URL")}} インターフェイスの **`username`** プロパティは、ドメイン名の前に指定されたユーザー名を含む {{domxref("USVString")}} です。 + +{{AvailableInWorkers}} + +## 構文 + + string = object.username; + object.username = string; + +### 値 + +{{domxref("USVString")}}。 + +## 例 + +```js +var url = new URL("https://anonymous:flabada@developer.mozilla.org/en-US/docs/Web/API/URL/username"); +var user = url.username; // 戻り値: 'anonymous' +``` + +## 仕様 + +| 仕様 | 状態 | コメント | +| -------------------------------------------------------------------- | -------------------- | -------- | +| {{SpecName('URL', '#dom-url-username', 'username')}} | {{Spec2('URL')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.URL.username")}} + +## 関連情報 + +- {{domxref("URL")}} インターフェイスに属します。 diff --git a/files/ja/web/api/urlsearchparams/append/index.html b/files/ja/web/api/urlsearchparams/append/index.html deleted file mode 100644 index 8ba29c8a838695..00000000000000 --- a/files/ja/web/api/urlsearchparams/append/index.html +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: URLSearchParams.append() -slug: Web/API/URLSearchParams/append -tags: - - API - - Append - - Method - - URL API - - URLSearchParams -translation_of: Web/API/URLSearchParams/append ---- -

{{ApiRef("URL API")}}

- -

{{domxref("URLSearchParams")}} インターフェイスの append() メソッドは、指定されたキー/値のペアを新しい検索パラメーターとして追加します。

- -

下にある例に示すように、同じキーが複数回追加された場合、各値がパラメーター文字列に複数回現れます。

- -

{{availableinworkers}}

- -

構文

- -
URLSearchParams.append(name, value)
- -

パラメーター

- -
-
name
-
追加するパラメーターの名前。
-
value
-
追加するパラメーターの値。
-
- -

戻り値

- -

無効。

- -

- -
let url = new URL('https://example.com?foo=1&bar=2');
-let params = new URLSearchParams(url.search.slice(1));
-
-// 2番目の foo パラメーターを追加します。
-params.append('foo', 4);
-// クエリー文字列は現在: 'foo=1&bar=2&foo=4'
- -

仕様

- - - - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('URL', '#dom-urlsearchparams-append', "append()")}}{{Spec2('URL')}}初期定義
- -

ブラウザーの互換性

- -
- - -

{{Compat("api.URLSearchParams.append")}}

-
- -

関連項目

- - diff --git a/files/ja/web/api/urlsearchparams/append/index.md b/files/ja/web/api/urlsearchparams/append/index.md new file mode 100644 index 00000000000000..0f62c6c4391f41 --- /dev/null +++ b/files/ja/web/api/urlsearchparams/append/index.md @@ -0,0 +1,59 @@ +--- +title: URLSearchParams.append() +slug: Web/API/URLSearchParams/append +tags: + - API + - Append + - Method + - URL API + - URLSearchParams +translation_of: Web/API/URLSearchParams/append +--- +{{ApiRef("URL API")}} + +{{domxref("URLSearchParams")}} インターフェイスの **`append()`** メソッドは、指定されたキー/値のペアを新しい検索パラメーターとして追加します。 + +下にある例に示すように、同じキーが複数回追加された場合、各値がパラメーター文字列に複数回現れます。 + +{{availableinworkers}} + +## 構文 + + URLSearchParams.append(name, value) + +### パラメーター + +- name + - : 追加するパラメーターの名前。 +- value + - : 追加するパラメーターの値。 + +### 戻り値 + +無効。 + +## 例 + +```js +let url = new URL('https://example.com?foo=1&bar=2'); +let params = new URLSearchParams(url.search.slice(1)); + +// 2番目の foo パラメーターを追加します。 +params.append('foo', 4); +// クエリー文字列は現在: 'foo=1&bar=2&foo=4' +``` + +## 仕様 + +| 仕様 | 状態 | コメント | +| ------------------------------------------------------------------------------------ | -------------------- | -------- | +| {{SpecName('URL', '#dom-urlsearchparams-append', "append()")}} | {{Spec2('URL')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.URLSearchParams.append")}} + +## 関連項目 + +- その他の URL 関連インターフェイス: {{domxref("URL")}}、{{domxref("HTMLHyperlinkElementUtils")}}。 +- [Google Developers: URLSearchParams を使用した簡単な URL 操作](https://developers.google.com/web/updates/2016/01/urlsearchparams?hl=en)(英語) diff --git a/files/ja/web/api/urlsearchparams/delete/index.html b/files/ja/web/api/urlsearchparams/delete/index.html deleted file mode 100644 index 8ff4474f14a0d4..00000000000000 --- a/files/ja/web/api/urlsearchparams/delete/index.html +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: URLSearchParams.delete() -slug: Web/API/URLSearchParams/delete -tags: - - API - - Method - - URL API - - URLSearchParams - - delete -translation_of: Web/API/URLSearchParams/delete ---- -

{{ApiRef("URL API")}}

- -

{{domxref("URLSearchParams")}} インターフェイスの delete() メソッドは、すべての検索パラメーターのリストから、指定された検索パラメーターとそれに関連するすべての値を削除します。

- -

{{availableinworkers}}

- -

構文

- -
URLSearchParams.delete(name)
- -

パラメーター

- -
-
name
-
削除するパラメーターの名前。
-
- -

戻り値

- -

無効

- -

- -
let url = new URL('https://example.com?foo=1&bar=2&foo=3');
-let params = new URLSearchParams(url.search.slice(1));
-
-// foo パラメーターを削除します。
-params.delete('foo'); // クエリー文字列は現在: 'bar=2'
- -

仕様

- - - - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('URL', '#dom-urlsearchparams-delete', "delete()")}}{{Spec2('URL')}}初期定義
- -

ブラウザーの互換性

- -
- - -

{{Compat("api.URLSearchParams.delete")}}

-
diff --git a/files/ja/web/api/urlsearchparams/delete/index.md b/files/ja/web/api/urlsearchparams/delete/index.md new file mode 100644 index 00000000000000..b6d478d7322f86 --- /dev/null +++ b/files/ja/web/api/urlsearchparams/delete/index.md @@ -0,0 +1,49 @@ +--- +title: URLSearchParams.delete() +slug: Web/API/URLSearchParams/delete +tags: + - API + - Method + - URL API + - URLSearchParams + - delete +translation_of: Web/API/URLSearchParams/delete +--- +{{ApiRef("URL API")}} + +{{domxref("URLSearchParams")}} インターフェイスの **`delete()`** メソッドは、すべての検索パラメーターのリストから、指定された検索パラメーターとそれに関連するすべての値を削除します。 + +{{availableinworkers}} + +## 構文 + + URLSearchParams.delete(name) + +### パラメーター + +- name + - : 削除するパラメーターの名前。 + +### 戻り値 + +無効 + +## 例 + +```js +let url = new URL('https://example.com?foo=1&bar=2&foo=3'); +let params = new URLSearchParams(url.search.slice(1)); + +// foo パラメーターを削除します。 +params.delete('foo'); // クエリー文字列は現在: 'bar=2' +``` + +## 仕様 + +| 仕様 | 状態 | コメント | +| ------------------------------------------------------------------------------------ | -------------------- | -------- | +| {{SpecName('URL', '#dom-urlsearchparams-delete', "delete()")}} | {{Spec2('URL')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.URLSearchParams.delete")}} diff --git a/files/ja/web/api/urlsearchparams/get/index.html b/files/ja/web/api/urlsearchparams/get/index.html deleted file mode 100644 index 241c9cda195765..00000000000000 --- a/files/ja/web/api/urlsearchparams/get/index.html +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: URLSearchParams.get() -slug: Web/API/URLSearchParams/get -tags: - - API - - Method - - URL API - - URLSearchParams - - get -translation_of: Web/API/URLSearchParams/get ---- -

{{ApiRef("URL API")}}

- -

{{domxref("URLSearchParams")}} インターフェースの get() メソッドは、指定された検索パラメーターに関連付けられた最初の値を返します。

- -

{{availableinworkers}}

- -

構文

- -
URLSearchParams.get(name)
- -

パラメーター

- -
-
name
-
返すパラメーターの名前。
-
- -

戻り値

- -

指定された検索パラメーターが見つかった場合、{{domxref("USVString")}}。 それ以外の場合、null

- -

- -

ページの URL が https://example.com/?name=Jonathan&age=18 の場合、次を使用して 'name' および 'age' のパラメーターを解析できます。

- -
let params = new URLSearchParams(document.location.search.substring(1));
-let name = params.get("name"); // 文字列 "Jonathan" です。
-let age = parseInt(params.get("age"), 10); // 数値 18 です。
-
- -

クエリー文字列に存在しないパラメーターを要求すると、null が返されます。

- -
let address = params.get("address"); // null
- -

仕様

- - - - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('URL', '#dom-urlsearchparams-get', "get()")}}{{Spec2('URL')}}初期定義
- -

ブラウザーの互換性

- -
- - -

{{Compat("api.URLSearchParams.get")}}

-
diff --git a/files/ja/web/api/urlsearchparams/get/index.md b/files/ja/web/api/urlsearchparams/get/index.md new file mode 100644 index 00000000000000..6f8064e43afd92 --- /dev/null +++ b/files/ja/web/api/urlsearchparams/get/index.md @@ -0,0 +1,51 @@ +--- +title: URLSearchParams.get() +slug: Web/API/URLSearchParams/get +tags: + - API + - Method + - URL API + - URLSearchParams + - get +translation_of: Web/API/URLSearchParams/get +--- +{{ApiRef("URL API")}} + +{{domxref("URLSearchParams")}} インターフェースの **`get()`** メソッドは、指定された検索パラメーターに関連付けられた最初の値を返します。 + +{{availableinworkers}} + +## 構文 + + URLSearchParams.get(name) + +### パラメーター + +- name + - : 返すパラメーターの名前。 + +### 戻り値 + +指定された検索パラメーターが見つかった場合、{{domxref("USVString")}}。 それ以外の場合、**`null`**。 + +## 例 + +ページの URL が `https://example.com/?name=Jonathan&age=18` の場合、次を使用して 'name' および 'age' のパラメーターを解析できます。 + + let params = new URLSearchParams(document.location.search.substring(1)); + let name = params.get("name"); // 文字列 "Jonathan" です。 + let age = parseInt(params.get("age"), 10); // 数値 18 です。 + +クエリー文字列に存在しないパラメーターを要求すると、**`null`** が返されます。 + + let address = params.get("address"); // null + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------------------- | -------------------- | -------- | +| {{SpecName('URL', '#dom-urlsearchparams-get', "get()")}} | {{Spec2('URL')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.URLSearchParams.get")}} diff --git a/files/ja/web/api/urlsearchparams/getall/index.html b/files/ja/web/api/urlsearchparams/getall/index.html deleted file mode 100644 index e4035e595b78fe..00000000000000 --- a/files/ja/web/api/urlsearchparams/getall/index.html +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: URLSearchParams.getAll() -slug: Web/API/URLSearchParams/getAll -tags: - - API - - Method - - URL API - - URLSearchParams - - getAll -translation_of: Web/API/URLSearchParams/getAll ---- -

{{ApiRef("URL API")}}

- -

{{domxref("URLSearchParams")}} インターフェイスの getAll() メソッドは、指定された検索パラメーターに関連付けられたすべての値を配列として返します。

- -

{{availableinworkers}}

- -

構文

- -
URLSearchParams.getAll(name)
- -

パラメーター

- -
-
name
-
返すパラメーターの名前。
-
- -

戻り値

- -

{{domxref("USVString")}} の配列。

- -

- -
let url = new URL('https://example.com?foo=1&bar=2');
-let params = new URLSearchParams(url.search.slice(1));
-
-// 2番目の foo パラメーターを追加します。
-params.append('foo', 4);
-
-console.log(params.getAll('foo')) // ["1","4"] を表示します。
-
- -

仕様

- - - - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('URL', '#dom-urlsearchparams-getall', "getAll()")}}{{Spec2('URL')}}初期定義
- -

ブラウザーの互換性

- -
- - -

{{Compat("api.URLSearchParams.getAll")}}

-
diff --git a/files/ja/web/api/urlsearchparams/getall/index.md b/files/ja/web/api/urlsearchparams/getall/index.md new file mode 100644 index 00000000000000..0174a101f030d1 --- /dev/null +++ b/files/ja/web/api/urlsearchparams/getall/index.md @@ -0,0 +1,51 @@ +--- +title: URLSearchParams.getAll() +slug: Web/API/URLSearchParams/getAll +tags: + - API + - Method + - URL API + - URLSearchParams + - getAll +translation_of: Web/API/URLSearchParams/getAll +--- +{{ApiRef("URL API")}} + +{{domxref("URLSearchParams")}} インターフェイスの **`getAll()`** メソッドは、指定された検索パラメーターに関連付けられたすべての値を配列として返します。 + +{{availableinworkers}} + +## 構文 + + URLSearchParams.getAll(name) + +### パラメーター + +- name + - : 返すパラメーターの名前。 + +### 戻り値 + +{{domxref("USVString")}} の配列。 + +## 例 + +```js +let url = new URL('https://example.com?foo=1&bar=2'); +let params = new URLSearchParams(url.search.slice(1)); + +// 2番目の foo パラメーターを追加します。 +params.append('foo', 4); + +console.log(params.getAll('foo')) // ["1","4"] を表示します。 +``` + +## 仕様 + +| 仕様 | 状態 | コメント | +| ------------------------------------------------------------------------------------ | -------------------- | -------- | +| {{SpecName('URL', '#dom-urlsearchparams-getall', "getAll()")}} | {{Spec2('URL')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.URLSearchParams.getAll")}} diff --git a/files/ja/web/api/urlsearchparams/has/index.html b/files/ja/web/api/urlsearchparams/has/index.html deleted file mode 100644 index 1bb28c72e60d93..00000000000000 --- a/files/ja/web/api/urlsearchparams/has/index.html +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: URLSearchParams.has() -slug: Web/API/URLSearchParams/has -tags: - - API - - Method - - URL API - - URLSearchParams - - has -translation_of: Web/API/URLSearchParams/has ---- -

{{ApiRef("URL API")}}

- -

{{domxref("URLSearchParams")}} インターフェイスの has() メソッドは、指定された名前のパラメーターが存在するかどうかを示す {{jsxref("Boolean")}} を返します。

- -

{{availableinworkers}}

- -

構文

- -
var hasName = URLSearchParams.has(name)
- -

パラメーター

- -
-
name
-
検索するパラメーターの名前。
-
- -

戻り値

- -

{{jsxref("Boolean")}}。

- -

- -
let url = new URL('https://example.com?foo=1&bar=2');
-let params = new URLSearchParams(url.search.slice(1));
-
-params.has('bar') === true; // true
-
- -

仕様

- - - - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('URL', '#dom-urlsearchparams-has', "has()")}}{{Spec2('URL')}}初期定義
- -

ブラウザーの互換性

- -
- - -

{{Compat("api.URLSearchParams.has")}}

-
diff --git a/files/ja/web/api/urlsearchparams/has/index.md b/files/ja/web/api/urlsearchparams/has/index.md new file mode 100644 index 00000000000000..a3e539af8f7ec4 --- /dev/null +++ b/files/ja/web/api/urlsearchparams/has/index.md @@ -0,0 +1,48 @@ +--- +title: URLSearchParams.has() +slug: Web/API/URLSearchParams/has +tags: + - API + - Method + - URL API + - URLSearchParams + - has +translation_of: Web/API/URLSearchParams/has +--- +{{ApiRef("URL API")}} + +{{domxref("URLSearchParams")}} インターフェイスの **`has()`** メソッドは、指定された名前のパラメーターが存在するかどうかを示す {{jsxref("Boolean")}} を返します。 + +{{availableinworkers}} + +## 構文 + + var hasName = URLSearchParams.has(name) + +### パラメーター + +- name + - : 検索するパラメーターの名前。 + +### 戻り値 + +{{jsxref("Boolean")}}。 + +## 例 + +```js +let url = new URL('https://example.com?foo=1&bar=2'); +let params = new URLSearchParams(url.search.slice(1)); + +params.has('bar') === true; // true +``` + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------------------- | -------------------- | -------- | +| {{SpecName('URL', '#dom-urlsearchparams-has', "has()")}} | {{Spec2('URL')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.URLSearchParams.has")}} diff --git a/files/ja/web/api/urlsearchparams/index.html b/files/ja/web/api/urlsearchparams/index.html deleted file mode 100644 index be220938da10ae..00000000000000 --- a/files/ja/web/api/urlsearchparams/index.html +++ /dev/null @@ -1,132 +0,0 @@ ---- -title: URLSearchParams -slug: Web/API/URLSearchParams -tags: - - API - - Interface - - Landing - - Reference - - URL API - - URLSearchParams -translation_of: Web/API/URLSearchParams ---- -
{{ApiRef("URL API")}}
- -

URLSearchParams インターフェイスは URL のクエリー文字列の操作に役立つメソッドを定義します。

- -

URLSearchParams を実装するオブジェクトは 直接 {{jsxref("Statements/for...of", "for...of")}} で使うことができます。例えば次の 2行は等価です。

- -
for (const [key, value] of mySearchParams) {}
-for (const [key, value] of mySearchParams.entries()) {}
- -

{{availableinworkers}}

- -

コンストラクター

- -
-
{{domxref("URLSearchParams.URLSearchParams", 'URLSearchParams()')}}
-
URLSearchParams オブジェクトを返すコンストラクターです。
-
- -

メソッド

- -
-
{{domxref("URLSearchParams.append()")}}
-
指定されたキーと値のペアを新しい検索パラメーターとして追加します。
-
{{domxref("URLSearchParams.delete()")}}
-
指定された検索パラメーターとその値を、検索パラメーターのリストからすべて削除します。
-
{{domxref("URLSearchParams.entries()")}}
-
このオブジェクトに含まれるすべてのキーと値のペアを列挙するための {{jsxref("Iteration_protocols","iterator")}} を返します。
-
{{domxref("URLSearchParams.forEach()")}}
-
コールバック関数を介して、このオブジェクトに含まれるすべての値を列挙します。
-
{{domxref("URLSearchParams.get()")}}
-
指定された検索パラメーターに対応する最初の値を返します。
-
{{domxref("URLSearchParams.getAll()")}}
-
指定された検索パラメーターに対応するすべての値を返します。
-
{{domxref("URLSearchParams.has()")}}
-
指定された検索パラメーターが存在するかを表す {{jsxref("Boolean")}} 値を返します。
-
{{domxref("URLSearchParams.keys()")}}
-
このオブジェクトに含まれるすべてのキーと値のペアのキーを列挙する {{jsxref("Iteration_protocols", "iterator")}} を返します。
-
{{domxref("URLSearchParams.set()")}}
-
指定された検索パラメーターに対応する値を設定します。複数の値が存在していた場合、それらは削除されます。
-
{{domxref("URLSearchParams.sort()")}}
-
すべてのキーと値のペアを、キーを基準にソートします。
-
{{domxref("URLSearchParams.toString()")}}
-
URL で使用するのに適したクエリー文字列を返します。
-
{{domxref("URLSearchParams.values()")}}
-
このオブジェクトに含まれるすべてのキーと値のペアのを列挙する {{jsxref("Iteration_protocols", "iterator")}} を返します。
-
- -

- -
var paramsString = "q=URLUtils.searchParams&topic=api";
-var searchParams = new URLSearchParams(paramsString);
-
-// 検索パラメーターを列挙する
-for (let p of searchParams) {
-  console.log(p);
-}
-
-searchParams.has("topic") === true; // true
-searchParams.get("topic") === "api"; // true
-searchParams.getAll("topic"); // ["api"]
-searchParams.get("foo") === null; // true
-searchParams.append("topic", "webdev");
-searchParams.toString(); // "q=URLUtils.searchParams&topic=api&topic=webdev"
-searchParams.set("topic", "More webdev");
-searchParams.toString(); // "q=URLUtils.searchParams&topic=More+webdev"
-searchParams.delete("topic");
-searchParams.toString(); // "q=URLUtils.searchParams"
-
- -

コラム

- -

URLSearchParams コンストラクターは完全な URL をパースしません。ただし、先頭に ? が存在すれば、読み飛ばします。

- -
var paramsString1 = "http://example.com/search?query=%40";
-var searchParams1 = new URLSearchParams(paramsString1);
-
-searchParams1.has("query"); // false
-searchParams1.has("http://example.com/search?query"); // true
-
-searchParams1.get("query"); // null
-searchParams1.get("http://example.com/search?query"); // "@" (equivalent to decodeURIComponent('%40'))
-
-var paramsString2 = "?query=value";
-var searchParams2 = new URLSearchParams(paramsString2);
-searchParams2.has("query"); // true
-
-var url = new URL("http://example.com/search?query=%40");
-var searchParams3 = new URLSearchParams(url.search);
-searchParams3.has("query") // true
-
- -

仕様書

- - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName('URL', '#urlsearchparams', "URLSearchParams")}}{{Spec2('URL')}}初回定義
- -

ブラウザーの互換性

- -

{{Compat("api.URLSearchParams")}}

- -

関連情報

- - diff --git a/files/ja/web/api/urlsearchparams/index.md b/files/ja/web/api/urlsearchparams/index.md new file mode 100644 index 00000000000000..eb9e78447335ff --- /dev/null +++ b/files/ja/web/api/urlsearchparams/index.md @@ -0,0 +1,117 @@ +--- +title: URLSearchParams +slug: Web/API/URLSearchParams +tags: + - API + - Interface + - Landing + - Reference + - URL API + - URLSearchParams +translation_of: Web/API/URLSearchParams +--- +{{ApiRef("URL API")}} + +**`URLSearchParams`** インターフェイスは URL のクエリー文字列の操作に役立つメソッドを定義します。 + +`URLSearchParams` を実装するオブジェクトは 直接 {{jsxref("Statements/for...of", "for...of")}} で使うことができます。例えば次の 2 行は等価です。 + +```js +for (const [key, value] of mySearchParams) {} +for (const [key, value] of mySearchParams.entries()) {} +``` + +{{availableinworkers}} + +## コンストラクター + +- {{domxref("URLSearchParams.URLSearchParams", 'URLSearchParams()')}} + - : `URLSearchParams` オブジェクトを返すコンストラクターです。 + +## メソッド + +- {{domxref("URLSearchParams.append()")}} + - : 指定されたキーと値のペアを新しい検索パラメーターとして追加します。 +- {{domxref("URLSearchParams.delete()")}} + - : 指定された検索パラメーターとその値を、検索パラメーターのリストからすべて削除します。 +- {{domxref("URLSearchParams.entries()")}} + - : このオブジェクトに含まれるすべてのキーと値のペアを列挙するための {{jsxref("Iteration_protocols","iterator")}} を返します。 +- {{domxref("URLSearchParams.forEach()")}} + - : コールバック関数を介して、このオブジェクトに含まれるすべての値を列挙します。 +- {{domxref("URLSearchParams.get()")}} + - : 指定された検索パラメーターに対応する最初の値を返します。 +- {{domxref("URLSearchParams.getAll()")}} + - : 指定された検索パラメーターに対応するすべての値を返します。 +- {{domxref("URLSearchParams.has()")}} + - : 指定された検索パラメーターが存在するかを表す {{jsxref("Boolean")}} 値を返します。 +- {{domxref("URLSearchParams.keys()")}} + - : このオブジェクトに含まれるすべてのキーと値のペアの**キー**を列挙する {{jsxref("Iteration_protocols", "iterator")}} を返します。 +- {{domxref("URLSearchParams.set()")}} + - : 指定された検索パラメーターに対応する値を設定します。複数の値が存在していた場合、それらは削除されます。 +- {{domxref("URLSearchParams.sort()")}} + - : すべてのキーと値のペアを、キーを基準にソートします。 +- {{domxref("URLSearchParams.toString()")}} + - : URL で使用するのに適したクエリー文字列を返します。 +- {{domxref("URLSearchParams.values()")}} + - : このオブジェクトに含まれるすべてのキーと値のペアの**値**を列挙する {{jsxref("Iteration_protocols", "iterator")}} を返します。 + +## 例 + +```js +var paramsString = "q=URLUtils.searchParams&topic=api"; +var searchParams = new URLSearchParams(paramsString); + +// 検索パラメーターを列挙する +for (let p of searchParams) { + console.log(p); +} + +searchParams.has("topic") === true; // true +searchParams.get("topic") === "api"; // true +searchParams.getAll("topic"); // ["api"] +searchParams.get("foo") === null; // true +searchParams.append("topic", "webdev"); +searchParams.toString(); // "q=URLUtils.searchParams&topic=api&topic=webdev" +searchParams.set("topic", "More webdev"); +searchParams.toString(); // "q=URLUtils.searchParams&topic=More+webdev" +searchParams.delete("topic"); +searchParams.toString(); // "q=URLUtils.searchParams" +``` + +### コラム + +`URLSearchParams` コンストラクターは完全な URL をパースしません。ただし、先頭に `?` が存在すれば、読み飛ばします。 + +```js +var paramsString1 = "http://example.com/search?query=%40"; +var searchParams1 = new URLSearchParams(paramsString1); + +searchParams1.has("query"); // false +searchParams1.has("http://example.com/search?query"); // true + +searchParams1.get("query"); // null +searchParams1.get("http://example.com/search?query"); // "@" (equivalent to decodeURIComponent('%40')) + +var paramsString2 = "?query=value"; +var searchParams2 = new URLSearchParams(paramsString2); +searchParams2.has("query"); // true + +var url = new URL("http://example.com/search?query=%40"); +var searchParams3 = new URLSearchParams(url.search); +searchParams3.has("query") // true +``` + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| ---------------------------------------------------------------------------- | -------------------- | -------- | +| {{SpecName('URL', '#urlsearchparams', "URLSearchParams")}} | {{Spec2('URL')}} | 初回定義 | + +## ブラウザーの互換性 + +{{Compat("api.URLSearchParams")}} + +## 関連情報 + +- {{domxref("URL")}} インターフェイス。 +- [Google Developers: URLSearchParams を使用した簡単な URL 操作](https://developers.google.com/web/updates/2016/01/urlsearchparams?hl=en) (英語) diff --git a/files/ja/web/api/urlsearchparams/tostring/index.html b/files/ja/web/api/urlsearchparams/tostring/index.html deleted file mode 100644 index 288a3f5af8e9f7..00000000000000 --- a/files/ja/web/api/urlsearchparams/tostring/index.html +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: URLSearchParams.toString() -slug: Web/API/URLSearchParams/toString -tags: - - API - - Method - - URL API - - URLSearchParams - - toString -translation_of: Web/API/URLSearchParams/toString ---- -

{{ApiRef("URL API")}}

- -

{{domxref("URLSearchParams")}} インターフェイスの toString() メソッドは、URL での使用に適したクエリー文字列を返します。

- -
-

: このメソッドは、疑問符のないクエリー文字列を返します。 これは、それを含む window.location.search とは異なります。

-
- -

{{availableinworkers}}

- -

構文

- -
URLSearchParams.toString()
- -

パラメーター

- -

なし。

- -

戻り値

- -

疑問符のない {{domxref("DOMString")}}。

- -

- -
let url = new URL('https://example.com?foo=1&bar=2');
-let params = new URLSearchParams(url.search.slice(1));
-
-// 2番目の foo パラメーターの追加
-params.append('foo', 4);
-console.log(params.toString());
-// 'foo=1&bar=2&foo=4' を表示
-
-// メモ: params は直接作成することもできます
-let url = new URL('https://example.com?foo=1&bar=2');
-let params = url.searchParams;
-
-// または、さらに単純に
-let params = new URLSearchParams('foo=1&bar=2');
-
- -

仕様

- - - - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('URL', '#interface-urlsearchparams', "toString() (see \"stringifier\")")}}{{Spec2('URL')}}初期定義
- -

ブラウザーの互換性

- -
- - -

{{Compat("api.URLSearchParams.toString")}}

-
- -

関連項目

- - diff --git a/files/ja/web/api/urlsearchparams/tostring/index.md b/files/ja/web/api/urlsearchparams/tostring/index.md new file mode 100644 index 00000000000000..221eb6570b3e60 --- /dev/null +++ b/files/ja/web/api/urlsearchparams/tostring/index.md @@ -0,0 +1,64 @@ +--- +title: URLSearchParams.toString() +slug: Web/API/URLSearchParams/toString +tags: + - API + - Method + - URL API + - URLSearchParams + - toString +translation_of: Web/API/URLSearchParams/toString +--- +{{ApiRef("URL API")}} + +{{domxref("URLSearchParams")}} インターフェイスの **`toString()`** メソッドは、URL での使用に適したクエリー文字列を返します。 + +> **Note:** **注**: このメソッドは、疑問符のないクエリー文字列を返します。 これは、それを含む [`window.location.search`](/ja/docs/Web/API/HTMLHyperlinkElementUtils/search) とは異なります。 + +{{availableinworkers}} + +## 構文 + + URLSearchParams.toString() + +### パラメーター + +なし。 + +### 戻り値 + +疑問符のない {{domxref("DOMString")}}。 + +## 例 + +```js +let url = new URL('https://example.com?foo=1&bar=2'); +let params = new URLSearchParams(url.search.slice(1)); + +// 2番目の foo パラメーターの追加 +params.append('foo', 4); +console.log(params.toString()); +// 'foo=1&bar=2&foo=4' を表示 + +// メモ: params は直接作成することもできます +let url = new URL('https://example.com?foo=1&bar=2'); +let params = url.searchParams; + +// または、さらに単純に +let params = new URLSearchParams('foo=1&bar=2'); +``` + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------------------------------------------------------- | -------------------- | -------- | +| {{SpecName('URL', '#interface-urlsearchparams', "toString() (see \"stringifier\")")}} | {{Spec2('URL')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.URLSearchParams.toString")}} + +## 関連項目 + +- {{domxref("URL")}} インターフェイス。 +- [Google Developers: URLSearchParams を使用した簡単な URL 操作](https://developers.google.com/web/updates/2016/01/urlsearchparams?hl=en)(英語) diff --git a/files/ja/web/api/urlsearchparams/urlsearchparams/index.html b/files/ja/web/api/urlsearchparams/urlsearchparams/index.html deleted file mode 100644 index d28e18c1e3a973..00000000000000 --- a/files/ja/web/api/urlsearchparams/urlsearchparams/index.html +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: URLSearchParams() -slug: Web/API/URLSearchParams/URLSearchParams -tags: - - API - - Constructor - - Reference - - URL API - - URLSearchParams -translation_of: Web/API/URLSearchParams/URLSearchParams ---- -

{{ApiRef("URL API")}}

- -

URLSearchParams() コンストラクターは、新しい {{domxref("URLSearchParams")}} オブジェクトを作成して返します。 先頭の '?' 文字は無視されます。

- -

{{availableinworkers}}

- -

構文

- -
var URLSearchParams = new URLSearchParams(init);
- -

パラメーター

- -
-
init {{optional_inline}}
-
{{domxref("USVString")}} のインスタンス、{{domxref("URLSearchParams")}} のインスタンス、{{domxref("USVString")}} のシーケンス、または {{domxref("USVString")}} を含むレコード。 URLSearchParams インスタンスの使用は推奨されないことに注意してください。 ブラウザーは単に initUSVString を使用するようになります。
-
- -

戻り値

- -

{{domxref("URLSearchParams")}} のインスタンス。

- -

- -

次の例は、URL 文字列から {{domxref("URLSearchParams")}} オブジェクトを作成する方法を示しています。

- -
// 文字列リテラルを渡す
-var url = new URL('https://example.com?foo=1&bar=2');
-// window.location から取得
-var url2 = new URL(window.location);
-
-// url.search を介してパラメーターを取得し、コンストラクターに渡す
-var params = new URLSearchParams(url.search);
-var params2 = new URLSearchParams(url2.search);
-
-// シーケンスを渡す
-var params3 = new URLSearchParams([["foo", 1],["bar", 2]]);
-
-// レコードを渡す
-var params4 = new URLSearchParams({"foo" : 1 , "bar" : 2});
-
- -

仕様

- - - - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('URL', '#dom-urlsearchparams-urlsearchparams', "URLSearchParams()")}}{{Spec2('URL')}}初期定義
- -

ブラウザーの互換性

- -
- - -

{{Compat("api.URLSearchParams.URLSearchParams")}}

-
diff --git a/files/ja/web/api/urlsearchparams/urlsearchparams/index.md b/files/ja/web/api/urlsearchparams/urlsearchparams/index.md new file mode 100644 index 00000000000000..fb31c1af8a5415 --- /dev/null +++ b/files/ja/web/api/urlsearchparams/urlsearchparams/index.md @@ -0,0 +1,60 @@ +--- +title: URLSearchParams() +slug: Web/API/URLSearchParams/URLSearchParams +tags: + - API + - Constructor + - Reference + - URL API + - URLSearchParams +translation_of: Web/API/URLSearchParams/URLSearchParams +--- +{{ApiRef("URL API")}} + +**`URLSearchParams()`** コンストラクターは、新しい {{domxref("URLSearchParams")}} オブジェクトを作成して返します。 先頭の `'?'` 文字は無視されます。 + +{{availableinworkers}} + +## 構文 + + var URLSearchParams = new URLSearchParams(init); + +### パラメーター + +- _`init`_ {{optional_inline}} + - : {{domxref("USVString")}} のインスタンス、{{domxref("URLSearchParams")}} のインスタンス、{{domxref("USVString")}} のシーケンス、または {{domxref("USVString")}} を含むレコード。 `URLSearchParams` インスタンスの使用は推奨されないことに注意してください。 ブラウザーは単に _`init`_ に `USVString` を使用するようになります。 + +### 戻り値 + +{{domxref("URLSearchParams")}} のインスタンス。 + +## 例 + +次の例は、URL 文字列から {{domxref("URLSearchParams")}} オブジェクトを作成する方法を示しています。 + +```js +// 文字列リテラルを渡す +var url = new URL('https://example.com?foo=1&bar=2'); +// window.location から取得 +var url2 = new URL(window.location); + +// url.search を介してパラメーターを取得し、コンストラクターに渡す +var params = new URLSearchParams(url.search); +var params2 = new URLSearchParams(url2.search); + +// シーケンスを渡す +var params3 = new URLSearchParams([["foo", 1],["bar", 2]]); + +// レコードを渡す +var params4 = new URLSearchParams({"foo" : 1 , "bar" : 2}); +``` + +## 仕様 + +| 仕様 | 状態 | コメント | +| ------------------------------------------------------------------------------------------------------------ | -------------------- | -------- | +| {{SpecName('URL', '#dom-urlsearchparams-urlsearchparams', "URLSearchParams()")}} | {{Spec2('URL')}} | 初期定義 | + +## ブラウザーの互換性 + +{{Compat("api.URLSearchParams.URLSearchParams")}} diff --git a/files/ja/web/api/user_timing_api/index.html b/files/ja/web/api/user_timing_api/index.html deleted file mode 100644 index a7e8ab448d2992..00000000000000 --- a/files/ja/web/api/user_timing_api/index.html +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: User Timing API -slug: Web/API/User_Timing_API -translation_of: Web/API/User_Timing_API ---- -
{{DefaultAPISidebar("User Timing API")}}
- -

User Timing インターフェイスを使用すると、開発者はブラウザのパフォーマンスタイムラインの一部であるアプリケーション固有の {{domxref("DOMHighResTimeStamp","timestamps")}} を作成できます。ユーザー定義のタイミングイベントタイプには2種類あります。"mark" {{domxref("PerformanceEntry.entryType","イベントタイプ")}} と "measure" {{domxref("PerformanceEntry.entryType","イベントタイプ")}}です。

- -

mark events are named by the application and can be set at any location in an application. measure events are also named by the application but they are placed between two marks thus they are effectively a midpoint between two marks.

- -

This document provides an overview of the mark and measure {{domxref("PerformanceEntry.entryType","performance event types")}} including the four User Timing methods that extend the {{domxref("Performance")}} interface. For more details and example code regarding these two performance event types and the methods, see Using the User Timing API.

- -

Performance marks

- -

A performance mark is a named {{domxref("PerformanceEntry","performance entry")}} that is created by the application. The mark is a {{domxref("DOMHighResTimeStamp","timestamp")}} in the browser's performance timeline.

- -

Creating a performance mark

- -

The {{domxref("Performance.mark","performance.mark()")}} method is used to create a performance mark. The method takes one argument, the name of the mark (for example performance.mark("mark-1")).

- -

The mark's {{domxref("PerformanceEntry","performance entry")}} will have the following property values:

- - - -

Retrieving performance marks

- -

The {{domxref("Performance")}} interface has three methods that can be used to retrieve a mark:

- -
-
{{domxref("Performance.getEntries","performance.getEntries()")}}
-
Returns all {{domxref("PerformanceEntry","performance entries")}} in the performance timeline. Finding only mark entries requires checking each entry's {{domxref("PerformanceEntry.entryType","entryType")}} for "mark".
-
{{domxref("Performance.getEntriesByName","performance.getEntriesByName(name, entryType)")}}
-
Returns all {{domxref("PerformanceEntry","performance entries")}} in the performance timeline with the specified name and entryType, thus set entryType to "mark" to get all marks (and set name accordingly to retrieve more specific entries).
-
{{domxref("Performance.getEntriesByType","performance.getEntriesByType(entryType)")}}
-
Returns all {{domxref("PerformanceEntry","performance entries")}} in the performance timeline with the specified entryType, thus set entryType to "mark" to get all marks.
-
- -

Removing performance marks

- -

To remove a specific mark from the performance timeline, call performance.clearMarks(name) where name is the name of the mark(s) you want removed. If this method is called with no arguments, all mark type entries will be removed from the performance timeline.

- -

Performance measures

- -

measure events are also named by the application but they are placed between two marks thus they are effectively a midpoint between two marks.

- -

Creating a performance measure

- -

A measure is created by calling performance.measure(measureName, startMarkName, endMarkName) where measureName is the measure's name and startMarkName and endMarkName are the start and end names, respectively, of the marks the measure will be placed between (in the performance timeline).

- -

The measure's {{domxref("PerformanceEntry","performance entry")}} will have the following property values:

- - - -

Retrieving performance measures

- -

The {{domxref("Performance")}} interface has three methods that can be used to retrieve a measure:

- -
-
{{domxref("Performance.getEntries","performance.getEntries()")}}
-
Returns all {{domxref("PerformanceEntry","performance entries")}} in the performance timeline. Finding the measure entries requires checking each entry's {{domxref("PerformanceEntry.entryType","entryType")}} for "measure".
-
{{domxref("Performance.getEntriesByName","performance.getEntriesByName(name, entryType)")}}
-
Returns all {{domxref("PerformanceEntry","performance entries")}} in the performance timeline with the specified name and entryType, thus set entryType to "measure" to get all measures (and set name accordingly to retrieve more specific entries).
-
{{domxref("Performance.getEntriesByType","performance.getEntriesByType(entryType)")}}
-
Returns all {{domxref("PerformanceEntry","performance entries")}} in the performance timeline with the specified entryType, thus set entryType to "measure" to get all measures.
-
- -

Removing performance measures

- -

To remove a specific measure from the performance timeline, call performance.clearMeasures(name) where name is the name of the measure(s) you want removed. If this method is called with no arguments, all measure type entries will be removed from the performance timeline.

- -

Interoperability

- -

As shown in the {{domxref("Performance")}} interface's Browser Compatibility table, the User Timing methods are broadly implemented by desktop and mobile browsers (the only exceptions are Desktop Safari and Mobile Safari, however the Safari Technology Preview 24 has support).

- -

To test your browser's support for this API, run the perf-api-support application.

- -

あわせて参照

- - diff --git a/files/ja/web/api/user_timing_api/index.md b/files/ja/web/api/user_timing_api/index.md new file mode 100644 index 00000000000000..41ffce2746ef2e --- /dev/null +++ b/files/ja/web/api/user_timing_api/index.md @@ -0,0 +1,84 @@ +--- +title: User Timing API +slug: Web/API/User_Timing_API +translation_of: Web/API/User_Timing_API +--- +{{DefaultAPISidebar("User Timing API")}} + +**`User Timing`** インターフェイスを使用すると、開発者はブラウザのパフォーマンスタイムラインの一部であるアプリケーション固有の {{domxref("DOMHighResTimeStamp","timestamps")}} を作成できます。ユーザー定義のタイミングイベントタイプには 2 種類あります。"`mark`" {{domxref("PerformanceEntry.entryType","イベントタイプ")}} と "`measure`" {{domxref("PerformanceEntry.entryType","イベントタイプ")}}です。 + +**`mark`** events are _named_ by the application and can be set at any location in an application. **`measure`** events are also _named_ by the application but they are placed between two marks thus they are effectively a _midpoint_ between two marks. + +This document provides an overview of the `mark` and `measure` {{domxref("PerformanceEntry.entryType","performance event types")}} including the four `User Timing` methods that extend the {{domxref("Performance")}} interface. For more details and example code regarding these two performance event types and the methods, see [Using the User Timing API](/Web/API/User_Timing_API/Using_the_User_Timing_API). + +## Performance `marks` + +A performance **`mark`** is a _named_ {{domxref("PerformanceEntry","performance entry")}} that is created by the application. The mark is a {{domxref("DOMHighResTimeStamp","timestamp")}} in the browser's _performance timeline_. + +### Creating a performance `mark` + +The {{domxref("Performance.mark","performance.mark()")}} method is used to create a performance mark. The method takes one argument, the _name_ of the mark (for example `performance.mark("mark-1")`). + +The `mark's` {{domxref("PerformanceEntry","performance entry")}} will have the following property values: + +- {{domxref("PerformanceEntry.entryType","entryType")}} - set to "`mark`". +- {{domxref("PerformanceEntry.name","name")}} - set to the "`name`" given when the mark was created. +- {{domxref("PerformanceEntry.startTime","startTime")}} - set to the {{domxref("DOMHighResTimeStamp","timestamp")}} when `mark()` was called. +- {{domxref("PerformanceEntry.duration","duration")}} - set to "`0`" (a mark has no _duration_). + +### Retrieving performance `marks` + +The {{domxref("Performance")}} interface has three methods that can be used to retrieve a mark: + +- {{domxref("Performance.getEntries","performance.getEntries()")}} + - : Returns all {{domxref("PerformanceEntry","performance entries")}} in the performance timeline. Finding only `mark` entries requires checking each entry's {{domxref("PerformanceEntry.entryType","entryType")}} for "`mark`". +- {{domxref("Performance.getEntriesByName","performance.getEntriesByName(name, entryType)")}} + - : Returns all {{domxref("PerformanceEntry","performance entries")}} in the performance timeline with the specified `name` and `entryType`, thus set `entryType` to "`mark`" to get all marks (and set `name` accordingly to retrieve more specific entries). +- {{domxref("Performance.getEntriesByType","performance.getEntriesByType(entryType)")}} + - : Returns all {{domxref("PerformanceEntry","performance entries")}} in the performance timeline with the specified `entryType`, thus set `entryType` to "`mark`" to get all marks. + +### Removing performance `marks` + +To remove a specific mark from the performance timeline, call `performance.clearMarks(name)` where `name` is the name of the mark(s) you want removed. If this method is called with no arguments, all mark type entries will be removed from the performance timeline. + +## Performance `measures` + +**`measure`** events are also _named_ by the application but they are placed between two marks thus they are effectively a _midpoint_ between two marks. + +### Creating a performance `measure` + +A `measure` is created by calling `performance.measure(measureName, startMarkName, endMarkName)` where `measureName` is the measure's name and `startMarkName` and `endMarkName` are the start and end names, respectively, of the marks the measure will be placed between (in the performance timeline). + +The `measure's` {{domxref("PerformanceEntry","performance entry")}} will have the following property values: + +- {{domxref("PerformanceEntry.entryType","entryType")}} - set to "`measure`". +- {{domxref("PerformanceEntry.name","name")}} - set to the "`name`" given when the measure was created. +- {{domxref("PerformanceEntry.startTime","startTime")}} - set to the {{domxref("DOMHighResTimeStamp","timestamp")}} when `measure()` was called. +- {{domxref("PerformanceEntry.duration","duration")}} - set to a {{domxref("DOMHighResTimeStamp")}} that is the duration of the measure (typically, the end mark timestamp minus the start mark timestamp). + +### Retrieving performance `measures` + +The {{domxref("Performance")}} interface has three methods that can be used to retrieve a measure: + +- {{domxref("Performance.getEntries","performance.getEntries()")}} + - : Returns all {{domxref("PerformanceEntry","performance entries")}} in the performance timeline. Finding the `measure` entries requires checking each entry's {{domxref("PerformanceEntry.entryType","entryType")}} for "`measure`". +- {{domxref("Performance.getEntriesByName","performance.getEntriesByName(name, entryType)")}} + - : Returns all {{domxref("PerformanceEntry","performance entries")}} in the performance timeline with the specified `name` and `entryType`, thus set `entryType` to "`measure`" to get all measures (and set `name` accordingly to retrieve more specific entries). +- {{domxref("Performance.getEntriesByType","performance.getEntriesByType(entryType)")}} + - : Returns all {{domxref("PerformanceEntry","performance entries")}} in the performance timeline with the specified `entryType`, thus set `entryType` to "`measure`" to get all measures. + +### Removing performance `measures` + +To remove a specific measure from the performance timeline, call `performance.clearMeasures(name)` where `name` is the name of the measure(s) you want removed. If this method is called with no arguments, all measure type entries will be removed from the performance timeline. + +## Interoperability + +As shown in the {{domxref("Performance")}} interface's [Browser Compatibility](/Web/API/Performance#Browser_compatibility) table, the `User Timing` methods are broadly implemented by desktop and mobile browsers (the only exceptions are Desktop Safari and Mobile Safari, however [the Safari Technology Preview 24 has support](https://developer.apple.com/safari/technology-preview/release-notes/#r24)). + +To test your browser's support for this API, run the [`perf-api-support`](https://mdn.github.io/dom-examples/performance-apis/perf-api-support.html) application. + +## あわせて参照 + +- [User Timing Standard](https://w3c.github.io/user-timing/); W3C Editor's Draft +- [CanIUse data](http://caniuse.com/#search=user-timing) +- [A Primer for Web Performance Timing APIs](http://siusin.github.io/perf-timing-primer/); Xiaoqian Wu; W3C Editor's Draft diff --git a/files/ja/web/api/userproximityevent/index.html b/files/ja/web/api/userproximityevent/index.html deleted file mode 100644 index bc975784376beb..00000000000000 --- a/files/ja/web/api/userproximityevent/index.html +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: UserProximityEvent -slug: Web/API/UserProximityEvent -tags: - - API - - Experimental - - Interface - - Proximity Events -translation_of: Web/API/UserProximityEvent ---- -

{{APIRef("Proximity Events")}}{{SeeCompatTable}}

- -

UserProximityEvent は、端末の近接センサーによって、端末の近くに物体が存在するかどうかを示します。

- -

プロパティ

- -
-
{{domxref("UserProximityEvent.near")}}
-
端末が近くの物体を検知したかどうかを示す真偽値を返す
-
- -

仕様書

- - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName('Proximity Events', '', 'Proximity Events')}}{{Spec2('Proximity Events')}}初回定義
- -

ブラウザーの対応

- -

{{Compat("api.UserProximityEvent")}}

- -

関連情報

- - diff --git a/files/ja/web/api/userproximityevent/index.md b/files/ja/web/api/userproximityevent/index.md new file mode 100644 index 00000000000000..332677808a7640 --- /dev/null +++ b/files/ja/web/api/userproximityevent/index.md @@ -0,0 +1,34 @@ +--- +title: UserProximityEvent +slug: Web/API/UserProximityEvent +tags: + - API + - Experimental + - Interface + - Proximity Events +translation_of: Web/API/UserProximityEvent +--- +{{APIRef("Proximity Events")}}{{SeeCompatTable}} + +`UserProximityEvent` は、端末の近接センサーによって、端末の近くに物体が存在するかどうかを示します。 + +## プロパティ + +- {{domxref("UserProximityEvent.near")}} + - : 端末が近くの物体を検知したかどうかを示す真偽値を返す + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| ---------------------------------------------------------------------------- | ---------------------------------------- | -------- | +| {{SpecName('Proximity Events', '', 'Proximity Events')}} | {{Spec2('Proximity Events')}} | 初回定義 | + +## ブラウザーの対応 + +{{Compat("api.UserProximityEvent")}} + +## 関連情報 + +- {{event("userproximity")}} +- {{domxref("DeviceProximityEvent")}} +- [Proximity Events](/ja/docs/WebAPI/Proximity) diff --git a/files/ja/web/api/vibration_api/index.html b/files/ja/web/api/vibration_api/index.html deleted file mode 100644 index 9432927cb01352..00000000000000 --- a/files/ja/web/api/vibration_api/index.html +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: Vibration API -slug: Web/API/Vibration_API -tags: - - API - - Beginner - - Mobile - - Vibration -translation_of: Web/API/Vibration_API -original_slug: Web/Guide/API/Vibration ---- -
{{DefaultAPISidebar("Vibration API")}}
- -

現代のモバイル端末は、たいていバイブレーションハードウェアを内蔵しており、ソフトウェアのコードが端末を振動させることによりユーザーに物理的なフィードバックを与えることができます。 Vibration API はウェブアプリに、このハードウェアが存在すればアクセスすることができるようにし、端末が対応していない場合は何もしません。

- -

バイブレーションの表現

- -

バイブレーションはオン・オフのパルスのパターンで表され、様々な長さになることがあります。パターンは振動するミリ秒数を示す整数 1 つ、あるいはバイブレーションと休止時間のパターンを示す整数の配列で構成します。バイブレーションは {{domxref("Navigator.vibrate()")}} という単一のメソッドで制御します。

- -

1 回のバイブレーション

- -

1 個の値、または 1 個だけの値で構成される配列を指定することにより、バイブレーションハードウェアを 1 回振動させることができます:

- -
window.navigator.vibrate(200);
-window.navigator.vibrate([200]);
-
- -

どちらの例も、デバイスを 200 ミリ秒間振動させます。

- -

バイブレーションパターン

- -

値の配列は、デバイスが振動する時間と振動しない時間を交互に示します。配列内の各値は整数値に変換されて、デバイスを振動させるミリ秒数および振動させないミリ秒数として交互に解釈されます。例えば以下のようにします。

- -
window.navigator.vibrate([200, 100, 200]);
-
- -

これはデバイスを 200 ミリ秒間振動させて、その後再び 200 ミリ秒間振動させる前に 100 ミリ秒間振動を止めます。

- -

バイブレーション/休止のペアは好きなだけ多く指定でき、またエントリ数は偶数・奇数のどちらでも可能です。各バイブレーション時間の終端で自動的にバイブレーションを止めますので、休止時間を最後のエントリとして与えなくてもよいことは注目に値します。

- -

実行中のバイブレーションを取り消す

- -

0、空の配列、あるいはすべての値が 0 の配列 を指定して {{domxref("Navigator.vibrate()")}} を呼び出すと、現在進行中のバイブレーションパターンを取り消します。

- -

継続的なバイブレーション

- -

基本的な setInterval および clearInterval のアクションにより、継続的なバイブレーションを生成できます:

- -
var vibrateInterval;
-
-// 渡されたレベルでバイブレーションを開始
-function startVibrate(duration) {
-    navigator.vibrate(duration);
-}
-
-// バイブレーションを停止
-function stopVibrate() {
-    // インターバルをクリアして継続的なバイブレーションを停止
-    if(vibrateInterval) clearInterval(vibrateInterval);
-    navigator.vibrate(0);
-}
-
-// 与えられた時間とインターバルによる継続的なバイブレーションを開始
-// 数値が与えられるものとする
-function startPersistentVibrate(duration, interval) {
-    vibrateInterval = setInterval(function() {
-        startVibrate(duration);
-    }, interval);
-}
- -

当然ながら、上記のコードスニペットは配列によるバイブレーションを考慮していません。配列に基づく継続的なバイブレーションでは、配列のアイテムの総数を計算して、その値を基にしてインターバル (おそらく、遅延時間を付加して) を作成することが必要でしょう。

- -

仕様書

- - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName("Vibration API")}}{{Spec2("Vibration API")}}リンク先は最新の編集者草稿です。 W3C 版は勧告になりました。
- -

ブラウザーの互換性

- -

{{Compat("api.Navigator.vibrate")}}

- -

関連情報

- - diff --git a/files/ja/web/api/vibration_api/index.md b/files/ja/web/api/vibration_api/index.md new file mode 100644 index 00000000000000..d7e19080e122f5 --- /dev/null +++ b/files/ja/web/api/vibration_api/index.md @@ -0,0 +1,89 @@ +--- +title: Vibration API +slug: Web/API/Vibration_API +tags: + - API + - Beginner + - Mobile + - Vibration +translation_of: Web/API/Vibration_API +original_slug: Web/Guide/API/Vibration +--- +{{DefaultAPISidebar("Vibration API")}} + +現代のモバイル端末は、たいていバイブレーションハードウェアを内蔵しており、ソフトウェアのコードが端末を振動させることによりユーザーに物理的なフィードバックを与えることができます。 **Vibration API** はウェブアプリに、このハードウェアが存在すればアクセスすることができるようにし、端末が対応していない場合は何もしません。 + +## バイブレーションの表現 + +バイブレーションはオン・オフのパルスのパターンで表され、様々な長さになることがあります。パターンは振動するミリ秒数を示す整数 1 つ、あるいはバイブレーションと休止時間のパターンを示す整数の配列で構成します。バイブレーションは {{domxref("Navigator.vibrate()")}} という単一のメソッドで制御します。 + +### 1 回のバイブレーション + +1 個の値、または 1 個だけの値で構成される配列を指定することにより、バイブレーションハードウェアを 1 回振動させることができます: + +```js +window.navigator.vibrate(200); +window.navigator.vibrate([200]); +``` + +どちらの例も、デバイスを 200 ミリ秒間振動させます。 + +### バイブレーションパターン + +値の配列は、デバイスが振動する時間と振動しない時間を交互に示します。配列内の各値は整数値に変換されて、デバイスを振動させるミリ秒数および振動させないミリ秒数として交互に解釈されます。例えば以下のようにします。 + +```js +window.navigator.vibrate([200, 100, 200]); +``` + +これはデバイスを 200 ミリ秒間振動させて、その後再び 200 ミリ秒間振動させる前に 100 ミリ秒間振動を止めます。 + +バイブレーション/休止のペアは好きなだけ多く指定でき、またエントリ数は偶数・奇数のどちらでも可能です。各バイブレーション時間の終端で自動的にバイブレーションを止めますので、休止時間を最後のエントリとして与えなくてもよいことは注目に値します。 + +### 実行中のバイブレーションを取り消す + +値 `0`、空の配列、あるいはすべての値が `0` の配列 を指定して {{domxref("Navigator.vibrate()")}} を呼び出すと、現在進行中のバイブレーションパターンを取り消します。 + +### 継続的なバイブレーション + +基本的な `setInterval` および `clearInterval` のアクションにより、継続的なバイブレーションを生成できます: + +```js +var vibrateInterval; + +// 渡されたレベルでバイブレーションを開始 +function startVibrate(duration) { + navigator.vibrate(duration); +} + +// バイブレーションを停止 +function stopVibrate() { + // インターバルをクリアして継続的なバイブレーションを停止 + if(vibrateInterval) clearInterval(vibrateInterval); + navigator.vibrate(0); +} + +// 与えられた時間とインターバルによる継続的なバイブレーションを開始 +// 数値が与えられるものとする +function startPersistentVibrate(duration, interval) { + vibrateInterval = setInterval(function() { + startVibrate(duration); + }, interval); +} +``` + +当然ながら、上記のコードスニペットは配列によるバイブレーションを考慮していません。配列に基づく継続的なバイブレーションでは、配列のアイテムの総数を計算して、その値を基にしてインターバル (おそらく、遅延時間を付加して) を作成することが必要でしょう。 + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| ---------------------------------------- | ------------------------------------ | ----------------------------------------------------------- | +| {{SpecName("Vibration API")}} | {{Spec2("Vibration API")}} | リンク先は最新の編集者草稿です。 W3C 版は勧告になりました。 | + +## ブラウザーの互換性 + +{{Compat("api.Navigator.vibrate")}} + +## 関連情報 + +- {{DOMxRef("Navigator.vibrate()")}} diff --git a/files/ja/web/api/videotrack/id/index.html b/files/ja/web/api/videotrack/id/index.html deleted file mode 100644 index 736c9e57093554..00000000000000 --- a/files/ja/web/api/videotrack/id/index.html +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: VideoTrack.id -slug: Web/API/VideoTrack/id -tags: - - API - - HTML DOM - - Interface - - Media - - Property - - Read-only - - Reference - - Video - - Video Track - - VideoTrack - - id - - track -translation_of: Web/API/VideoTrack/id ---- -
{{APIRef("HTML DOM")}}
- -

id プロパティは、{{domxref("VideoTrack")}} によって表されるトラックを一意に識別する文字列を含みます。 この ID を {{domxref("VideoTrackList.getTrackById()")}} メソッドと共に使用して、メディア要素に関連付けられたメディア内の特定のトラックを見つけることができます。

- -

トラック ID は、特定のトラックをロードする URL のフラグメントとしても使用できます(メディアがメディアフラグメントをサポートしている場合)。

- -

構文

- -
var trackID = VideoTrack.id;
- -

- -

トラックを識別する {{domxref("DOMString")}}。メディア要素の {{domxref("HTMLMediaElement.videoTracks", "videoTracks")}} プロパティで指定されたものなどの {{domxref("VideoTrackList")}} で {{domxref("VideoTrackList.getTrackById", "getTrackById()")}} を呼び出すときに使用するのに適しています。

- -

- -

仕様

- - - - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('HTML WHATWG', '#dom-videotrack-id', 'VideoTrack: id')}}{{Spec2('HTML WHATWG')}}
- -

ブラウザーの互換性

- - - -

{{Compat("api.VideoTrack.id")}}

diff --git a/files/ja/web/api/videotrack/id/index.md b/files/ja/web/api/videotrack/id/index.md new file mode 100644 index 00000000000000..fce460df876e2f --- /dev/null +++ b/files/ja/web/api/videotrack/id/index.md @@ -0,0 +1,41 @@ +--- +title: VideoTrack.id +slug: Web/API/VideoTrack/id +tags: + - API + - HTML DOM + - Interface + - Media + - Property + - Read-only + - Reference + - Video + - Video Track + - VideoTrack + - id + - track +translation_of: Web/API/VideoTrack/id +--- +{{APIRef("HTML DOM")}} + +**`id`** プロパティは、**{{domxref("VideoTrack")}}** によって表されるトラックを一意に識別する文字列を含みます。 この ID を {{domxref("VideoTrackList.getTrackById()")}} メソッドと共に使用して、メディア要素に関連付けられたメディア内の特定のトラックを見つけることができます。 + +トラック ID は、特定のトラックをロードする URL のフラグメントとしても使用できます(メディアがメディアフラグメントをサポートしている場合)。 + +## 構文 + + var trackID = VideoTrack.id; + +### 値 + +トラックを識別する {{domxref("DOMString")}}。メディア要素の {{domxref("HTMLMediaElement.videoTracks", "videoTracks")}} プロパティで指定されたものなどの {{domxref("VideoTrackList")}} で {{domxref("VideoTrackList.getTrackById", "getTrackById()")}} を呼び出すときに使用するのに適しています。 + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------------------------------- | -------------------------------- | -------- | +| {{SpecName('HTML WHATWG', '#dom-videotrack-id', 'VideoTrack: id')}} | {{Spec2('HTML WHATWG')}} | | + +## ブラウザーの互換性 + +{{Compat("api.VideoTrack.id")}} diff --git a/files/ja/web/api/videotrack/index.html b/files/ja/web/api/videotrack/index.html deleted file mode 100644 index 7cb00107c2aad1..00000000000000 --- a/files/ja/web/api/videotrack/index.html +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: VideoTrack -slug: Web/API/VideoTrack -tags: - - HTML - - HTML DOM - - Interface - - Media - - Reference - - Video - - VideoTrack - - track -translation_of: Web/API/VideoTrack ---- -
{{APIRef("HTML DOM")}}
- -

VideoTrack インターフェイスは、{{HTMLElement("video")}} 要素からの単一の動画トラックを表します。 VideoTrack オブジェクトにアクセスするための最も一般的な用途は、その {{HTMLElement("video")}} 要素のアクティブ動画トラックにするために、その {{domxref("VideoTrack.selected", "selected")}} プロパティを切り替えることです。

- -

プロパティ

- -
-
{{domxref("VideoTrack.selected", "selected")}}
-
動画トラックがアクティブかどうかを制御する Boolean の値。 同時にアクティブにできる動画トラックは1つだけなので、別のトラックがアクティブなときに、あるトラックでこのプロパティを true に設定すると、アクティブであったトラックは非アクティブになります。
-
{{domxref("VideoTrack.id", "id")}} {{ReadOnlyInline}}
-
メディア内のトラックを一意に識別する {{domxref("DOMString")}}。この ID を使用して、{{domxref("VideoTrackList.getTrackById()")}} を呼び出して、動画トラックリスト内の特定のトラックを見つけることができます。 メディアが Media Fragments URI 仕様その日本語訳)に従ってメディアフラグメントによるシークをサポートしている場合は、ID を URL のフラグメント部分として使用することもできます。
-
{{domxref("VideoTrack.kind", "kind")}} {{ReadOnlyInline}}
-
トラックが属するカテゴリを指定する {{domxref("DOMString")}}。 例えば、メイン動画トラックには "main" という kind があります。
-
{{domxref("VideoTrack.label", "label")}} {{ReadOnlyInline}}
-
トラックに人間が読めるラベルを提供する {{domxref("DOMString")}}。 例えば、kind"sign" のトラックには "手話通訳" という label が付いている場合があります。 ラベルが指定されていない場合、この文字列は空です。
-
{{domxref("VideoTrack.language", "language")}} {{ReadOnlyInline}}
-
動画トラックの主要言語を指定する {{domxref("DOMString")}}、または不明の場合は空の文字列。 言語は、"en-US" または "pt-BR" などの BCP 47({{RFC(5646)}})言語コードとして指定されています。
-
{{domxref("VideoTrack.sourceBuffer", "sourceBuffer")}} {{ReadOnlyInline}}
-
トラックを作成した {{domxref("SourceBuffer")}}。トラックが {{domxref("SourceBuffer")}} によって作成されなかった場合、または {{domxref("SourceBuffer")}} がその親メディアソースの {{domxref("MediaSource.sourceBuffers")}} 属性から取り除かれた場合は、null を返します。
-
- -

使用上の注意

- -

特定のメディア要素の VideoTrack を取得するには、その要素の {{domxref("HTMLMediaElement.videoTracks", "videoTracks")}} プロパティを使用します。 このプロパティは、メディアに含まれる個々のトラックを取得できる {{domxref("VideoTrackList")}} オブジェクトを返します。

- -
var el = document.querySelector("video");
-var tracks = el.videoTracks;
-
- -

その後、配列の構文または {{jsxref("Array.forEach", "forEach()")}} などの関数を使用して、メディアの個々のトラックにアクセスできます。

- -

この最初の例は、メディア上の最初の動画トラックを取得します。

- -
var firstTrack = tracks[0];
- -

次の例では、メディアのすべての動画トラックをスキャンして、(変数 userLanguage から取得した)ユーザーの優先言語の最初の動画トラックをアクティブにします。

- -
for (var i = 0; i < tracks.length; i++) {
-  if (tracks[i].language === userLanguage) {
-    tracks[i].selected = true;
-    break;
-  }
-});
-
- -

{{domxref("VideoTrack.language", "language")}} は標準({{RFC(5646)}})形式です。 例えば、アメリカ英語の場合、これは "en-US" になります。

- -

仕様

- - - - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('HTML WHATWG', '#videotrack', 'VideoTrack')}}{{Spec2('HTML WHATWG')}}
- -

ブラウザーの互換性

- - - -

{{Compat("api.VideoTrack")}}

diff --git a/files/ja/web/api/videotrack/index.md b/files/ja/web/api/videotrack/index.md new file mode 100644 index 00000000000000..610fe60d25f843 --- /dev/null +++ b/files/ja/web/api/videotrack/index.md @@ -0,0 +1,72 @@ +--- +title: VideoTrack +slug: Web/API/VideoTrack +tags: + - HTML + - HTML DOM + - Interface + - Media + - Reference + - Video + - VideoTrack + - track +translation_of: Web/API/VideoTrack +--- +{{APIRef("HTML DOM")}} + +`VideoTrack` インターフェイスは、{{HTMLElement("video")}} 要素からの単一の動画トラックを表します。 `VideoTrack` オブジェクトにアクセスするための最も一般的な用途は、その {{HTMLElement("video")}} 要素のアクティブ動画トラックにするために、その {{domxref("VideoTrack.selected", "selected")}} プロパティを切り替えることです。 + +## プロパティ + +- {{domxref("VideoTrack.selected", "selected")}} + - : 動画トラックがアクティブかどうかを制御する Boolean の値。 同時にアクティブにできる動画トラックは 1 つだけなので、別のトラックがアクティブなときに、あるトラックでこのプロパティを `true` に設定すると、アクティブであったトラックは非アクティブになります。 +- {{domxref("VideoTrack.id", "id")}} {{ReadOnlyInline}} + - : メディア内のトラックを一意に識別する {{domxref("DOMString")}}。この ID を使用して、{{domxref("VideoTrackList.getTrackById()")}} を呼び出して、動画トラックリスト内の特定のトラックを見つけることができます。 メディアが [Media Fragments URI 仕様](https://www.w3.org/TR/media-frags/)([その日本語訳](http://www.asahi-net.or.jp/~ax2s-kmtn/internet/media/REC-media-frags-10-20120925.html))に従ってメディアフラグメントによるシークをサポートしている場合は、ID を URL のフラグメント部分として使用することもできます。 +- {{domxref("VideoTrack.kind", "kind")}} {{ReadOnlyInline}} + - : トラックが属するカテゴリを指定する {{domxref("DOMString")}}。 例えば、メイン動画トラックには `"main"` という `kind` があります。 +- {{domxref("VideoTrack.label", "label")}} {{ReadOnlyInline}} + - : トラックに人間が読めるラベルを提供する {{domxref("DOMString")}}。 例えば、`kind` が `"sign"` のトラックには `"手話通訳"` という `label` が付いている場合があります。 ラベルが指定されていない場合、この文字列は空です。 +- {{domxref("VideoTrack.language", "language")}} {{ReadOnlyInline}} + - : 動画トラックの主要言語を指定する {{domxref("DOMString")}}、または不明の場合は空の文字列。 言語は、`"en-US"` または `"pt-BR"` などの BCP 47({{RFC(5646)}})言語コードとして指定されています。 +- {{domxref("VideoTrack.sourceBuffer", "sourceBuffer")}} {{ReadOnlyInline}} + - : トラックを作成した {{domxref("SourceBuffer")}}。トラックが {{domxref("SourceBuffer")}} によって作成されなかった場合、または {{domxref("SourceBuffer")}} がその親メディアソースの {{domxref("MediaSource.sourceBuffers")}} 属性から取り除かれた場合は、null を返します。 + +## 使用上の注意 + +特定のメディア要素の `VideoTrack` を取得するには、その要素の {{domxref("HTMLMediaElement.videoTracks", "videoTracks")}} プロパティを使用します。 このプロパティは、メディアに含まれる個々のトラックを取得できる {{domxref("VideoTrackList")}} オブジェクトを返します。 + +```js +var el = document.querySelector("video"); +var tracks = el.videoTracks; +``` + +その後、配列の構文または {{jsxref("Array.forEach", "forEach()")}} などの関数を使用して、メディアの個々のトラックにアクセスできます。 + +この最初の例は、メディア上の最初の動画トラックを取得します。 + +```js +var firstTrack = tracks[0]; +``` + +次の例では、メディアのすべての動画トラックをスキャンして、(変数 `userLanguage` から取得した)ユーザーの優先言語の最初の動画トラックをアクティブにします。 + +```js +for (var i = 0; i < tracks.length; i++) { + if (tracks[i].language === userLanguage) { + tracks[i].selected = true; + break; + } +}); +``` + +{{domxref("VideoTrack.language", "language")}} は標準({{RFC(5646)}})形式です。 例えば、アメリカ英語の場合、これは `"en-US"` になります。 + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------------------- | -------------------------------- | -------- | +| {{SpecName('HTML WHATWG', '#videotrack', 'VideoTrack')}} | {{Spec2('HTML WHATWG')}} | | + +## ブラウザーの互換性 + +{{Compat("api.VideoTrack")}} diff --git a/files/ja/web/api/videotrack/kind/index.html b/files/ja/web/api/videotrack/kind/index.html deleted file mode 100644 index b808a5af09413f..00000000000000 --- a/files/ja/web/api/videotrack/kind/index.html +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: VideoTrack.kind -slug: Web/API/VideoTrack/kind -tags: - - API - - HTML DOM - - Media - - Property - - Read-only - - Reference - - Video - - Video Track - - VideoTrack - - id - - track -translation_of: Web/API/VideoTrack/kind ---- -
{{APIRef("HTML DOM")}}
- -

kind プロパティには、{{domxref("VideoTrack")}} に含まれる動画のカテゴリを示す文字列が含まれています。 この kind を使用して、特定のトラックを有効または無効にするシナリオを決定できます。 動画トラックで利用可能な kind の一覧については、動画トラックの kind 文字列を参照してください。

- -

構文

- -
var trackKind = VideoTrack.kind;
- -

- -

メディアが表すコンテンツの種類を指定する {{domxref("DOMString")}}。 この文字列は、以下の動画トラックの kind 文字列にあるもののうちの1つです。

- -

動画トラックの kind 文字列

- -

動画トラックで利用可能な kind は次のとおりです。

- -
-
"alternative"
-
メイントラックに代わる可能性のあるもの。 例えば、異なる動画テイクや、音楽だけで会話がないサウンドトラックのバージョンなど。
-
"captions"
-
キャプション付きのメイン動画トラックのバージョン。
-
"main"
-
プライマリ動画トラック。
-
"sign"
-
音声トラックの手話による通訳。
-
"subtitles"
-
字幕付きのメイン動画トラックのバージョン。
-
"commentary"
-
解説を含む動画トラック。 これは、例えば映画で監督の解説トラックを含めるために使用される場合があります。
-
""(空の文字列)
-
トラックに明確な kind がない、またはトラックのメタデータによって提供された kind が{{Glossary("user agent","ユーザーエージェント")}}に認識されていません。
-
- -

仕様

- - - - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('HTML WHATWG', '#dom-videotrack-kind', 'VideoTrack: kind')}}{{Spec2('HTML WHATWG')}}
- -

ブラウザーの互換性

- - - -

{{Compat("api.VideoTrack.kind")}}

diff --git a/files/ja/web/api/videotrack/kind/index.md b/files/ja/web/api/videotrack/kind/index.md new file mode 100644 index 00000000000000..1d6b057813f0f0 --- /dev/null +++ b/files/ja/web/api/videotrack/kind/index.md @@ -0,0 +1,57 @@ +--- +title: VideoTrack.kind +slug: Web/API/VideoTrack/kind +tags: + - API + - HTML DOM + - Media + - Property + - Read-only + - Reference + - Video + - Video Track + - VideoTrack + - id + - track +translation_of: Web/API/VideoTrack/kind +--- +{{APIRef("HTML DOM")}} + +**`kind`** プロパティには、**{{domxref("VideoTrack")}}** に含まれる動画のカテゴリを示す文字列が含まれています。 この `kind` を使用して、特定のトラックを有効または無効にするシナリオを決定できます。 動画トラックで利用可能な kind の一覧については、[動画トラックの kind 文字列](#video_track_kind_strings)を参照してください。 + +## 構文 + + var trackKind = VideoTrack.kind; + +### 値 + +メディアが表すコンテンツの種類を指定する {{domxref("DOMString")}}。 この文字列は、以下の[動画トラックの kind 文字列](#video_track_kind_strings)にあるもののうちの 1 つです。 + +## 動画トラックの kind 文字列 + +動画トラックで利用可能な kind は次のとおりです。 + +- `"alternative"` + - : メイントラックに代わる可能性のあるもの。 例えば、異なる動画テイクや、音楽だけで会話がないサウンドトラックのバージョンなど。 +- `"captions"` + - : キャプション付きのメイン動画トラックのバージョン。 +- `"main"` + - : プライマリ動画トラック。 +- `"sign"` + - : 音声トラックの手話による通訳。 +- `"subtitles"` + - : 字幕付きのメイン動画トラックのバージョン。 +- `"commentary"` + - : 解説を含む動画トラック。 これは、例えば映画で監督の解説トラックを含めるために使用される場合があります。 +- `""`(空の文字列) + - : トラックに明確な kind がない、またはトラックのメタデータによって提供された kind が{{Glossary("user agent","ユーザーエージェント")}}に認識されていません。 + +## 仕様 + +| 仕様 | 状態 | コメント | +| ------------------------------------------------------------------------------------------------ | -------------------------------- | -------- | +| {{SpecName('HTML WHATWG', '#dom-videotrack-kind', 'VideoTrack: kind')}} | {{Spec2('HTML WHATWG')}} | | + +## ブラウザーの互換性 + +{{Compat("api.VideoTrack.kind")}} diff --git a/files/ja/web/api/videotrack/label/index.html b/files/ja/web/api/videotrack/label/index.html deleted file mode 100644 index ec03d2957d3a67..00000000000000 --- a/files/ja/web/api/videotrack/label/index.html +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: VideoTrack.label -slug: Web/API/VideoTrack/label -tags: - - API - - HTML DOM - - Media - - Property - - Read-only - - Reference - - Video - - Video Track - - VideoTrack - - label - - metadata - - track -translation_of: Web/API/VideoTrack/label ---- -
{{APIRef("HTML DOM")}}
- -

読み取り専用の {{domxref("VideoTrack")}}label プロパティは、動画トラックの判読可能なラベルがある場合はそれを指定する文字列を返します。 それ以外の場合は、空の文字列を返します。

- -

構文

- -
var videoTrackLabel = VideoTrack.label;
- -

- -

トラックのメタデータで利用可能な場合は、トラックの判読可能なラベルを指定する {{domxref("DOMString")}}。 それ以外の場合は、空の文字列("")が返されます。

- -

例えば、{{domxref("VideoTrack.kind", "kind")}} が "sign" のトラックには、"手話通訳" などの label が付いている場合があります。

- -

- -

この例では、指定されたメディア要素の動画トラックを選択するためにユーザーインターフェイスで使用される可能性のあるトラックの kind とラベルの配列を返します。 リストは、特定の kind のトラックのみを通過させるようにフィルタ処理されています。

- -
function getTrackList(el) {
-  var trackList = [];
-  const wantedKinds = [
-    "main", "alternative", "commentary"
-  ];
-
-  el.videoTracks.forEach(function(track) {
-    if (wantedKinds.includes(track.kind)) {
-      trackList.push({
-        id: track.id,
-        kind: track.kind,
-        label: track.label
-      });
-    }
-  });
-  return trackList;
-}
- -

結果の trackList には、その kind が配列 wantedKinds の中の1つである動画トラックの配列を含み、各エントリはトラックの {{domxref("VideoTrack.id", "id")}}、{{domxref("VideoTrack.kind", "kind")}}、および {{domxref("VideoTrack.label", "label")}} を提供します。

- -

仕様

- - - - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('HTML WHATWG', '#dom-videotrack-label', 'VideoTrack: label')}}{{Spec2('HTML WHATWG')}}
- -

ブラウザーの互換性

- - - -

{{Compat("api.VideoTrack.label")}}

diff --git a/files/ja/web/api/videotrack/label/index.md b/files/ja/web/api/videotrack/label/index.md new file mode 100644 index 00000000000000..68a6518b22a718 --- /dev/null +++ b/files/ja/web/api/videotrack/label/index.md @@ -0,0 +1,67 @@ +--- +title: VideoTrack.label +slug: Web/API/VideoTrack/label +tags: + - API + - HTML DOM + - Media + - Property + - Read-only + - Reference + - Video + - Video Track + - VideoTrack + - label + - metadata + - track +translation_of: Web/API/VideoTrack/label +--- +{{APIRef("HTML DOM")}} + +読み取り専用の **{{domxref("VideoTrack")}}** の **`label`** プロパティは、動画トラックの判読可能なラベルがある場合はそれを指定する文字列を返します。 それ以外の場合は、空の文字列を返します。 + +## 構文 + + var videoTrackLabel = VideoTrack.label; + +### 値 + +トラックのメタデータで利用可能な場合は、トラックの判読可能なラベルを指定する {{domxref("DOMString")}}。 それ以外の場合は、空の文字列(`""`)が返されます。 + +例えば、{{domxref("VideoTrack.kind", "kind")}} が `"sign"` のトラックには、`"手話通訳"` などの `label` が付いている場合があります。 + +## 例 + +この例では、指定されたメディア要素の動画トラックを選択するためにユーザーインターフェイスで使用される可能性のあるトラックの kind とラベルの配列を返します。 リストは、特定の kind のトラックのみを通過させるようにフィルタ処理されています。 + +```js +function getTrackList(el) { + var trackList = []; + const wantedKinds = [ + "main", "alternative", "commentary" + ]; + + el.videoTracks.forEach(function(track) { + if (wantedKinds.includes(track.kind)) { + trackList.push({ + id: track.id, + kind: track.kind, + label: track.label + }); + } + }); + return trackList; +} +``` + +結果の `trackList` には、その `kind` が配列 `wantedKinds` の中の 1 つである動画トラックの配列を含み、各エントリはトラックの {{domxref("VideoTrack.id", "id")}}、{{domxref("VideoTrack.kind", "kind")}}、および {{domxref("VideoTrack.label", "label")}} を提供します。 + +## 仕様 + +| 仕様 | 状態 | コメント | +| ------------------------------------------------------------------------------------------------ | -------------------------------- | -------- | +| {{SpecName('HTML WHATWG', '#dom-videotrack-label', 'VideoTrack: label')}} | {{Spec2('HTML WHATWG')}} | | + +## ブラウザーの互換性 + +{{Compat("api.VideoTrack.label")}} diff --git a/files/ja/web/api/videotrack/language/index.html b/files/ja/web/api/videotrack/language/index.html deleted file mode 100644 index 8d74b9182ec1ef..00000000000000 --- a/files/ja/web/api/videotrack/language/index.html +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: Videotrack.language -slug: Web/API/VideoTrack/language -tags: - - API - - HTML DOM - - Language - - Localization - - Media - - Property - - Read-only - - Reference - - Video - - VideoTrack - - track -translation_of: Web/API/VideoTrack/language ---- -
{{APIRef("HTML DOM")}}
- -

読み取り専用の {{domxref("VideoTrack")}}language プロパティは、動画トラックで使用されている言語を識別する文字列を返します。 複数の言語を含むトラック(他の言語で数行が話されている英語の映画など)の場合は、これが動画の主要言語になります。

- -

構文

- -
var videoTrackLanguage = VideoTrack.language;
- -

- -

動画トラックで使用される主要言語の BCP 47({{RFC(5646)}})形式の言語タグを指定する {{domxref("DOMString")}}。 言語が指定されていないか知られていない場合や、トラックに音声が含まれていない場合は空文字列("")。

- -

例えば、トラックで使用されている主要言語がアメリカ英語の場合、この値は "en-US" になります。 ブラジルポルトガル語の場合、値は "pt-BR" になります。

- -

仕様

- - - - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('HTML WHATWG', '#dom-videotrack-language', 'VideoTrack: language')}}{{Spec2('HTML WHATWG')}}
- -

ブラウザーの互換性

- - - -

{{Compat("api.VideoTrack.language")}}

diff --git a/files/ja/web/api/videotrack/language/index.md b/files/ja/web/api/videotrack/language/index.md new file mode 100644 index 00000000000000..1491b580e4b234 --- /dev/null +++ b/files/ja/web/api/videotrack/language/index.md @@ -0,0 +1,40 @@ +--- +title: Videotrack.language +slug: Web/API/VideoTrack/language +tags: + - API + - HTML DOM + - Language + - Localization + - Media + - Property + - Read-only + - Reference + - Video + - VideoTrack + - track +translation_of: Web/API/VideoTrack/language +--- +{{APIRef("HTML DOM")}} + +読み取り専用の **{{domxref("VideoTrack")}}** の **`language`** プロパティは、動画トラックで使用されている言語を識別する文字列を返します。 複数の言語を含むトラック(他の言語で数行が話されている英語の映画など)の場合は、これが動画の主要言語になります。 + +## 構文 + + var videoTrackLanguage = VideoTrack.language; + +### 値 + +動画トラックで使用される主要言語の BCP 47({{RFC(5646)}})形式の言語タグを指定する {{domxref("DOMString")}}。 言語が指定されていないか知られていない場合や、トラックに音声が含まれていない場合は空文字列(`""`)。 + +例えば、トラックで使用されている主要言語がアメリカ英語の場合、この値は `"en-US"` になります。 ブラジルポルトガル語の場合、値は `"pt-BR"` になります。 + +## 仕様 + +| 仕様 | 状態 | コメント | +| -------------------------------------------------------------------------------------------------------- | -------------------------------- | -------- | +| {{SpecName('HTML WHATWG', '#dom-videotrack-language', 'VideoTrack: language')}} | {{Spec2('HTML WHATWG')}} | | + +## ブラウザーの互換性 + +{{Compat("api.VideoTrack.language")}} diff --git a/files/ja/web/api/videotrack/selected/index.html b/files/ja/web/api/videotrack/selected/index.html deleted file mode 100644 index 512b29a29f6580..00000000000000 --- a/files/ja/web/api/videotrack/selected/index.html +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: VideoTrack.selected -slug: Web/API/VideoTrack/selected -tags: - - HTML DOM - - Media - - Media Controls - - Media Track - - Property - - Reference - - Video - - VideoTrack - - selected - - track -translation_of: Web/API/VideoTrack/selected ---- -
{{APIRef("HTML DOM")}}
- -

{{domxref("VideoTrack")}}selected プロパティは、特定の動画トラックがアクティブかどうかを制御します。

- -

構文

- -
isVideoSelected = VideoTrack.selected;
-
-VideoTrack.selected = true | false;
- -

- -

selected プロパティは、トラックがアクティブな場合に値が true になる Boolean の値です。 同時にアクティブにできる動画トラックは1つだけなので、別のトラックがアクティブなときに、あるトラックでこのプロパティを true に設定すると、アクティブであったトラックは非アクティブになります。

- -

仕様

- - - - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('HTML WHATWG', '#dom-videotrack-selected', 'VideoTrack: selected')}}{{Spec2('HTML WHATWG')}}
- -

ブラウザーの互換性

- - - -

{{Compat("api.VideoTrack.selected")}}

diff --git a/files/ja/web/api/videotrack/selected/index.md b/files/ja/web/api/videotrack/selected/index.md new file mode 100644 index 00000000000000..e3f35467ae9d32 --- /dev/null +++ b/files/ja/web/api/videotrack/selected/index.md @@ -0,0 +1,39 @@ +--- +title: VideoTrack.selected +slug: Web/API/VideoTrack/selected +tags: + - HTML DOM + - Media + - Media Controls + - Media Track + - Property + - Reference + - Video + - VideoTrack + - selected + - track +translation_of: Web/API/VideoTrack/selected +--- +{{APIRef("HTML DOM")}} + +**{{domxref("VideoTrack")}}** の **`selected`** プロパティは、特定の動画トラックがアクティブかどうかを制御します。 + +## 構文 + + isVideoSelected = VideoTrack.selected; + + VideoTrack.selected = true | false; + +### 値 + +`selected` プロパティは、トラックがアクティブな場合に値が `true` になる Boolean の値です。 同時にアクティブにできる動画トラックは 1 つだけなので、別のトラックがアクティブなときに、あるトラックでこのプロパティを `true` に設定すると、アクティブであったトラックは非アクティブになります。 + +## 仕様 + +| 仕様 | 状態 | コメント | +| -------------------------------------------------------------------------------------------------------- | -------------------------------- | -------- | +| {{SpecName('HTML WHATWG', '#dom-videotrack-selected', 'VideoTrack: selected')}} | {{Spec2('HTML WHATWG')}} | | + +## ブラウザーの互換性 + +{{Compat("api.VideoTrack.selected")}} diff --git a/files/ja/web/api/videotrack/sourcebuffer/index.html b/files/ja/web/api/videotrack/sourcebuffer/index.html deleted file mode 100644 index c1df3c2c23cd71..00000000000000 --- a/files/ja/web/api/videotrack/sourcebuffer/index.html +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: VideoTrack.sourceBuffer -slug: Web/API/VideoTrack/sourceBuffer -tags: - - API - - HTML DOM - - MSE - - Media - - Media Source Extensions - - Property - - Read-only - - Reference - - SourceBuffer - - Video - - VideoTrack - - track -translation_of: Web/API/VideoTrack/sourceBuffer ---- -
{{APIRef("HTML DOM")}}
- -

読み取り専用の {{domxref("VideoTrack")}}sourceBuffer プロパティは、トラックを作成した {{domxref("SourceBuffer")}} を返します。 トラックが {{domxref("SourceBuffer")}} によって作成されなかった場合、または {{domxref("SourceBuffer")}} がその親メディアソースの {{domxref("MediaSource.sourceBuffers")}} 属性から取り除かれた場合は null を返します。

- -

構文

- -
var sourceBuffer = VideoTrack.sourceBuffer;
- -

- -

{{domxref("SourceBuffer")}} または null。

- -

仕様

- - - - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('Media Source Extensions', '#dom-videotrack-sourcebuffer', 'VideoTrack: sourceBuffer')}}{{Spec2('Media Source Extensions')}}
- -

ブラウザーの互換性

- - - -

{{Compat("api.VideoTrack.sourceBuffer")}}

diff --git a/files/ja/web/api/videotrack/sourcebuffer/index.md b/files/ja/web/api/videotrack/sourcebuffer/index.md new file mode 100644 index 00000000000000..da7aa890654097 --- /dev/null +++ b/files/ja/web/api/videotrack/sourcebuffer/index.md @@ -0,0 +1,39 @@ +--- +title: VideoTrack.sourceBuffer +slug: Web/API/VideoTrack/sourceBuffer +tags: + - API + - HTML DOM + - MSE + - Media + - Media Source Extensions + - Property + - Read-only + - Reference + - SourceBuffer + - Video + - VideoTrack + - track +translation_of: Web/API/VideoTrack/sourceBuffer +--- +{{APIRef("HTML DOM")}} + +読み取り専用の **{{domxref("VideoTrack")}}** の **`sourceBuffer`** プロパティは、トラックを作成した {{domxref("SourceBuffer")}} を返します。 トラックが {{domxref("SourceBuffer")}} によって作成されなかった場合、または {{domxref("SourceBuffer")}} がその親メディアソースの {{domxref("MediaSource.sourceBuffers")}} 属性から取り除かれた場合は null を返します。 + +## 構文 + + var sourceBuffer = VideoTrack.sourceBuffer; + +### 値 + +{{domxref("SourceBuffer")}} または null。 + +## 仕様 + +| 仕様 | 状態 | コメント | +| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------ | -------- | +| {{SpecName('Media Source Extensions', '#dom-videotrack-sourcebuffer', 'VideoTrack: sourceBuffer')}} | {{Spec2('Media Source Extensions')}} | | + +## ブラウザーの互換性 + +{{Compat("api.VideoTrack.sourceBuffer")}} diff --git a/files/ja/web/api/videotracklist/addtrack_event/index.html b/files/ja/web/api/videotracklist/addtrack_event/index.html deleted file mode 100644 index 5cb6d6a35b5b43..00000000000000 --- a/files/ja/web/api/videotracklist/addtrack_event/index.html +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: 'VideoTrackList: addtrack イベント' -slug: Web/API/VideoTrackList/addtrack_event -tags: - - API - - Reference - - addTrack - - events -translation_of: Web/API/VideoTrackList/addtrack_event ---- -
{{APIRef}}
- -

addtrack イベントは、トラックが {{domxref("VideoTrackList")}} に追加されたときに発生します。

- - - - - - - - - - - - - - - - - - - - -
バブリングなし
キャンセル不可
インターフェイス{{domxref("TrackEvent")}}
イベントハンドラプロパティonaddtrack
- -

- -

AddEventListener() を使用する場合

- -
const videoElement = document.querySelector('video');
-
-videoElement.videoTracks.addEventListener('addtrack', (event) => {
-  console.log(`Video track: ${event.track.label} added`);
-});
- -

onaddtrack イベントハンドラプロパティを使用する場合

- -
const videoElement = document.querySelector('video');
-
-videoElement.videoTracks.onaddtrack = (event) => {
-  console.log(`Video track: ${event.track.label} added`);
-};
- -

仕様

- - - - - - - - - - - - -
仕様状態
{{SpecName('HTML WHATWG', 'media.html#event-media-addtrack', 'addtrack')}}{{Spec2('HTML WHATWG')}}
- -

ブラウザーの互換性

- - - -

{{Compat("api.VideoTrackList.addtrack_event")}}

- -

関連情報

- - diff --git a/files/ja/web/api/videotracklist/addtrack_event/index.md b/files/ja/web/api/videotracklist/addtrack_event/index.md new file mode 100644 index 00000000000000..1998973aa62a22 --- /dev/null +++ b/files/ja/web/api/videotracklist/addtrack_event/index.md @@ -0,0 +1,59 @@ +--- +title: 'VideoTrackList: addtrack イベント' +slug: Web/API/VideoTrackList/addtrack_event +tags: + - API + - Reference + - addTrack + - events +translation_of: Web/API/VideoTrackList/addtrack_event +--- +{{APIRef}} + +`addtrack` イベントは、トラックが {{domxref("VideoTrackList")}} に追加されたときに発生します。 + +| バブリング | なし | +| -------------------------- | ---------------------------------------------------------- | +| キャンセル | 不可 | +| インターフェイス | {{domxref("TrackEvent")}} | +| イベントハンドラプロパティ | [`onaddtrack`](/ja/docs/Web/API/VideoTrackList/onaddtrack) | + +## 例 + +`AddEventListener()` を使用する場合 + +```js +const videoElement = document.querySelector('video'); + +videoElement.videoTracks.addEventListener('addtrack', (event) => { + console.log(`Video track: ${event.track.label} added`); +}); +``` + +`onaddtrack` イベントハンドラプロパティを使用する場合 + +```js +const videoElement = document.querySelector('video'); + +videoElement.videoTracks.onaddtrack = (event) => { + console.log(`Video track: ${event.track.label} added`); +}; +``` + +## 仕様 + +| 仕様 | 状態 | +| ---------------------------------------------------------------------------------------------------- | -------------------------------- | +| {{SpecName('HTML WHATWG', 'media.html#event-media-addtrack', 'addtrack')}} | {{Spec2('HTML WHATWG')}} | + +## ブラウザーの互換性 + +{{Compat("api.VideoTrackList.addtrack_event")}} + +## 関連情報 + +- 関連イベント: [`removetrack`](/ja/docs/Web/API/VideoTrackList/removetrack_event), [`change`](/ja/docs/Web/API/VideoTrackList/change_event) +- [`AudioTrackList`](/ja/docs/Web/API/AudioTrackList) 対象でのこのイベント: [`addtrack`](/ja/docs/Web/API/AudioTrackList/addtrack_event) +- [`MediaStream`](/ja/docs/Web/API/MediaStream) 対象でのこのイベント: [`addtrack`](/ja/docs/Web/API/MediaStream/addtrack_event) +- [Media Streams API](/ja/docs/Web/API/Media_Streams_API) +- [WebRTC API](/ja/docs/Web/API/WebRTC_API) diff --git a/files/ja/web/api/videotracklist/change_event/index.html b/files/ja/web/api/videotracklist/change_event/index.html deleted file mode 100644 index a24e5583cea373..00000000000000 --- a/files/ja/web/api/videotracklist/change_event/index.html +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: 'VideoTrackList: change イベント' -slug: Web/API/VideoTrackList/change_event -tags: - - API - - Change - - Reference - - events -translation_of: Web/API/VideoTrackList/change_event ---- -
{{APIRef}}
- -

change イベントは、動画トラックがアクティブまたは非アクティブになったとき(トラックの selected プロパティを変更したときなど)に発生します。

- - - - - - - - - - - - - - - - - - - - -
バブリングなし
キャンセル不可
インターフェイス{{domxref("Event")}}
イベントハンドラプロパティonchange
- -

- -

AddEventListener() を使用する場合

- -
const videoElement = document.querySelector('video');
-videoElement.videoTracks.addEventListener('change', (event) => {
-    console.log(`'${event.type}' イベント発生`);
-});
-
-// `selected` の値を変更すると `change` イベントを引き起こします
-const toggleTrackButton = document.querySelector('.toggle-track');
-toggleTrackButton.addEventListener('click', () => {
-  const track = videoElement.videoTracks[0];
-  track.selected = !track.selected;
-});
-
- -

onchange イベントハンドラプロパティを使用する場合

- -
const videoElement = document.querySelector('video');
-videoElement.videoTracks.onchange = (event) => {
-    console.log(`'${event.type}' イベント発生`);
-};
-
-// `selected` の値を変更すると `change` イベントを引き起こします
-const toggleTrackButton = document.querySelector('.toggle-track');
-toggleTrackButton.addEventListener('click', () => {
-  const track = videoElement.videoTracks[0];
-  track.selected = !track.selected;
-});
- -

仕様

- - - - - - - - - - - - -
仕様状態
{{SpecName('HTML WHATWG', 'media.html#event-media-change', 'change')}}{{Spec2('HTML WHATWG')}}
- -

ブラウザーの互換性

- - - -

{{Compat("api.VideoTrackList.change_event")}}

- -

関連情報

- - diff --git a/files/ja/web/api/videotracklist/change_event/index.md b/files/ja/web/api/videotracklist/change_event/index.md new file mode 100644 index 00000000000000..0d4f54f89543c5 --- /dev/null +++ b/files/ja/web/api/videotracklist/change_event/index.md @@ -0,0 +1,70 @@ +--- +title: 'VideoTrackList: change イベント' +slug: Web/API/VideoTrackList/change_event +tags: + - API + - Change + - Reference + - events +translation_of: Web/API/VideoTrackList/change_event +--- +{{APIRef}} + +`change` イベントは、動画トラックがアクティブまたは非アクティブになったとき(トラックの [`selected`](/ja/docs/Web/API/VideoTrack/selected) プロパティを変更したときなど)に発生します。 + +| バブリング | なし | +| -------------------------- | ------------------------------------------------------ | +| キャンセル | 不可 | +| インターフェイス | {{domxref("Event")}} | +| イベントハンドラプロパティ | [`onchange`](/ja/docs/Web/API/VideoTrackList/onchange) | + +## 例 + +`AddEventListener()` を使用する場合 + +```js +const videoElement = document.querySelector('video'); +videoElement.videoTracks.addEventListener('change', (event) => { + console.log(`'${event.type}' イベント発生`); +}); + +// `selected` の値を変更すると `change` イベントを引き起こします +const toggleTrackButton = document.querySelector('.toggle-track'); +toggleTrackButton.addEventListener('click', () => { + const track = videoElement.videoTracks[0]; + track.selected = !track.selected; +}); +``` + +`onchange` イベントハンドラプロパティを使用する場合 + +```js +const videoElement = document.querySelector('video'); +videoElement.videoTracks.onchange = (event) => { + console.log(`'${event.type}' イベント発生`); +}; + +// `selected` の値を変更すると `change` イベントを引き起こします +const toggleTrackButton = document.querySelector('.toggle-track'); +toggleTrackButton.addEventListener('click', () => { + const track = videoElement.videoTracks[0]; + track.selected = !track.selected; +}); +``` + +## 仕様 + +| 仕様 | 状態 | +| -------------------------------------------------------------------------------------------- | -------------------------------- | +| {{SpecName('HTML WHATWG', 'media.html#event-media-change', 'change')}} | {{Spec2('HTML WHATWG')}} | + +## ブラウザーの互換性 + +{{Compat("api.VideoTrackList.change_event")}} + +## 関連情報 + +- Related events: [`addtrack`](/ja/docs/Web/API/VideoTrackList/addtrack_event), [`removetrack`](/ja/docs/Web/API/VideoTrackList/removetrack_event) +- [`AudioTrackList`](/ja/docs/Web/API/AudioTrackList) 対象でのこのイベント: [`change`](/ja/docs/Web/API/AudioTrackList/change_event) +- [Media Streams API](/ja/docs/Web/API/Media_Streams_API) +- [WebRTC API](/ja/docs/Web/API/WebRTC_API) diff --git a/files/ja/web/api/videotracklist/gettrackbyid/index.html b/files/ja/web/api/videotracklist/gettrackbyid/index.html deleted file mode 100644 index 5877f2008145a8..00000000000000 --- a/files/ja/web/api/videotracklist/gettrackbyid/index.html +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: Video​Track​List​.get​Track​ById -slug: Web/API/VideoTrackList/getTrackById -tags: - - API - - HTML DOM - - Media - - Method - - Reference - - Track ID - - Track List - - Tracks - - Video - - VideoTrackList - - getTrackById - - id - - track -translation_of: Web/API/VideoTrackList/getTrackById ---- -
{{APIRef("HTML DOM")}}
- -

{{domxref("VideoTrackList")}}getTrackById() メソッドは、指定された文字列と {{domxref("VideoTrack.id", "id")}} が一致するトラックリストから最初の {{domxref("VideoTrack")}} オブジェクトを返します。 ID 文字列がわかっていれば、これで特定のトラックを見つけることができます。

- -

構文

- -
var theTrack = VideoTrackList.getTrackById(id);
- -

パラメーター

- -
-
id
-
トラックリスト内で検索するトラックの ID を示す {{domxref("DOMString")}}。
-
- -

戻り値

- -

指定された文字列に一致する id を持つ VideoTrackList 内で見つかった最初のトラックを示す {{domxref("VideoTrack")}} オブジェクト。 一致が見つからない場合、このメソッドは null を返します。

- -

トラックは自然な順序で検索されます。 つまり、メディアリソース自体によって定義された順序で、またはリソースが順序を定義していない場合は、メディアリソースによってトラックが宣言される相対的な順序です。

- -

仕様

- - - - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('HTML WHATWG', '#dom-videotracklist-gettrackbyid', 'VideoTrackList.getTrackById()')}}{{Spec2('HTML WHATWG')}}
- -

ブラウザーの互換性

- - - -

{{Compat("api.VideoTrackList.getTrackById")}}

diff --git a/files/ja/web/api/videotracklist/gettrackbyid/index.md b/files/ja/web/api/videotracklist/gettrackbyid/index.md new file mode 100644 index 00000000000000..605a69e312949a --- /dev/null +++ b/files/ja/web/api/videotracklist/gettrackbyid/index.md @@ -0,0 +1,47 @@ +--- +title: Video​Track​List​.get​Track​ById +slug: Web/API/VideoTrackList/getTrackById +tags: + - API + - HTML DOM + - Media + - Method + - Reference + - Track ID + - Track List + - Tracks + - Video + - VideoTrackList + - getTrackById + - id + - track +translation_of: Web/API/VideoTrackList/getTrackById +--- +{{APIRef("HTML DOM")}} + +**{{domxref("VideoTrackList")}}** の **`getTrackById()`** メソッドは、指定された文字列と {{domxref("VideoTrack.id", "id")}} が一致するトラックリストから最初の {{domxref("VideoTrack")}} オブジェクトを返します。 ID 文字列がわかっていれば、これで特定のトラックを見つけることができます。 + +## 構文 + + var theTrack = VideoTrackList.getTrackById(id); + +### パラメーター + +- `id` + - : トラックリスト内で検索するトラックの ID を示す {{domxref("DOMString")}}。 + +### 戻り値 + +指定された文字列に一致する `id` を持つ `VideoTrackList` 内で見つかった最初のトラックを示す {{domxref("VideoTrack")}} オブジェクト。 一致が見つからない場合、このメソッドは `null` を返します。 + +トラックは自然な順序で検索されます。 つまり、メディアリソース自体によって定義された順序で、またはリソースが順序を定義していない場合は、メディアリソースによってトラックが宣言される相対的な順序です。 + +## 仕様 + +| 仕様 | 状態 | コメント | +| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- | -------- | +| {{SpecName('HTML WHATWG', '#dom-videotracklist-gettrackbyid', 'VideoTrackList.getTrackById()')}} | {{Spec2('HTML WHATWG')}} | | + +## ブラウザーの互換性 + +{{Compat("api.VideoTrackList.getTrackById")}} diff --git a/files/ja/web/api/videotracklist/index.html b/files/ja/web/api/videotracklist/index.html deleted file mode 100644 index 8be9cd3ec23bd1..00000000000000 --- a/files/ja/web/api/videotracklist/index.html +++ /dev/null @@ -1,114 +0,0 @@ ---- -title: VideoTrackList -slug: Web/API/VideoTrackList -tags: - - API - - HTML DOM - - Interface - - Media - - Reference - - Track List - - Tracks - - Video - - VideoTrackList - - list -translation_of: Web/API/VideoTrackList ---- -
{{APIRef("HTML DOM")}}
- -

VideoTrackList インターフェイスは、{{HTMLElement("video")}} 要素内に含まれる動画トラックのリストを表すために使用します。 各トラックはリスト内の個別の {{domxref("VideoTrack")}} オブジェクトで表します。

- -

{{domxref('HTMLMediaElement.videoTracks')}} を使用してこのオブジェクトのインスタンスを取得します。 個々のトラックは、配列構文または {{jsxref("Array.forEach", "forEach()")}} などの関数を使用してアクセスできます。

- -

プロパティ

- -

このインターフェイスは、その親インターフェイスである {{domxref("EventTarget")}} からもプロパティを継承します。

- -
-
{{domxref("VideoTrackList.length", "length")}} {{ReadOnlyInline}}
-
リスト内のトラック数。
-
{{domxref("VideoTrackList.selectedIndex", "selectedIndex")}} {{ReadOnlyInline}}
-
現在選択されているトラックがある場合はそのインデックス、それ以外の場合は -1
-
- -

イベントハンドラー

- -
-
{{domxref("VideoTrackList.onaddtrack", "onaddtrack")}}
-
{{event("addtrack")}} イベントが発生したときに呼び出されるイベントハンドラー。 新しい動画トラックがメディア要素に追加されたことを示します。
-
{{domxref("VideoTrackList.onchange", "onchange")}}
-
{{event("change")}} イベントが発生したときに呼び出されるイベントハンドラー。 つまりトラックの {{domxref("VideoTrack.selected", "selected")}} プロパティの値が変更されて、トラックがアクティブまたは非アクティブになったときです。
-
{{domxref("VideoTrackList.onremovetrack", "onremovetrack")}}
-
{{event("removetrack")}} イベントが発生したときに呼び出されるイベントハンドラー。 動画トラックがメディア要素から取り除かれたことを示します。
-
- -

メソッド

- -

このインターフェイスは、その親インターフェイスである {{domxref("EventTarget")}} からもメソッドを継承しています。

- -
-
{{domxref("VideoTrackList.getTrackById", "getTrackById()")}}
-
指定された文字列と {{domxref("VideoTrack.id", "id")}} が一致する VideoTrackList 内で見つかった {{domxref("VideoTrack")}} を返します。 一致が見つからない場合は、null を返します。
-
- -

イベント

- -
-
{{domxref("VideoTrackList.addtrack_event", "addtrack")}}
-
新しい動画トラックがメディア要素に追加されたときに発生します。
- {{domxref("VideoTrackList.onaddtrack", "onaddtrack")}} プロパティからも利用できます。
-
{{domxref("VideoTrackList.change_event", "change")}}
-
動画トラックがアクティブまたは非アクティブになったときに発生します。
- {{domxref("VideoTrackList.onchange", "onchange")}} プロパティからも利用できます。
-
{{domxref("VideoTrackList.removetrack_event", "removetrack")}}
-
動画トラックがメディア要素から取り除かれたときに発生します。
- {{domxref("VideoTrackList.onremovetrack", "onremovetrack")}} プロパティからも利用できます。
-
- -

使用上の注意

- -

VideoTrackList を使用すると、メディア要素にある動画トラックに直接アクセスできるだけでなく、{{event("addtrack")}} イベントと {{event("removetrack")}} イベントにイベントハンドラを設定できるため、メディア要素のストリームにトラックが追加されたときまたは取り除かれたときに検出できます。 詳細と例については、{{domxref("VideoTrackList.onaddtrack", "onaddtrack")}} と {{domxref("VideoTrackList.onremovetrack", "onremovetrack")}} を参照してください。

- -

- -

メディア要素の動画トラックリストの取得

- -

メディア要素の VideoTrackList を取得するには、その {{domxref("HTMLMediaElement.videoTracks", "videoTracks")}} プロパティを使用します。

- -
var videoTracks = document.querySelector("video").videoTracks;
- -

トラック数の変化の監視

- -

この例では、利用可能なチャンネル数に関する情報を表示するアプリがあります。 それを最新に保つために、{{event("addtrack")}} と {{event("removetrack")}} イベントのためのハンドラが設定されています。

- -
videoTracks.onaddtrack = updateTrackCount;
-videoTracks.onremovetrack = updateTrackCount;
-
-function updateTrackCount(event) {
-  trackCount = videoTracks.length;
-  drawTrackCountIndicator(trackCount);
-}
-
- -

仕様書

- - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName('HTML WHATWG', '#videotracklist', 'VideoTrackList')}}{{Spec2('HTML WHATWG')}}
- -

ブラウザーの互換性

- -

{{Compat("api.VideoTrackList")}}

diff --git a/files/ja/web/api/videotracklist/index.md b/files/ja/web/api/videotracklist/index.md new file mode 100644 index 00000000000000..89e4d769e2d611 --- /dev/null +++ b/files/ja/web/api/videotracklist/index.md @@ -0,0 +1,96 @@ +--- +title: VideoTrackList +slug: Web/API/VideoTrackList +tags: + - API + - HTML DOM + - Interface + - Media + - Reference + - Track List + - Tracks + - Video + - VideoTrackList + - list +translation_of: Web/API/VideoTrackList +--- +{{APIRef("HTML DOM")}} + +**`VideoTrackList`** インターフェイスは、{{HTMLElement("video")}} 要素内に含まれる動画トラックのリストを表すために使用します。 各トラックはリスト内の個別の {{domxref("VideoTrack")}} オブジェクトで表します。 + +{{domxref('HTMLMediaElement.videoTracks')}} を使用してこのオブジェクトのインスタンスを取得します。 個々のトラックは、配列構文または {{jsxref("Array.forEach", "forEach()")}} などの関数を使用してアクセスできます。 + +## プロパティ + +_このインターフェイスは、その親インターフェイスである {{domxref("EventTarget")}} からもプロパティを継承します。_ + +- {{domxref("VideoTrackList.length", "length")}} {{ReadOnlyInline}} + - : リスト内のトラック数。 +- {{domxref("VideoTrackList.selectedIndex", "selectedIndex")}} {{ReadOnlyInline}} + - : 現在選択されているトラックがある場合はそのインデックス、それ以外の場合は `-1`。 + +## イベントハンドラー + +- {{domxref("VideoTrackList.onaddtrack", "onaddtrack")}} + - : {{event("addtrack")}} イベントが発生したときに呼び出されるイベントハンドラー。 新しい動画トラックがメディア要素に追加されたことを示します。 +- {{domxref("VideoTrackList.onchange", "onchange")}} + - : {{event("change")}} イベントが発生したときに呼び出されるイベントハンドラー。 つまりトラックの {{domxref("VideoTrack.selected", "selected")}} プロパティの値が変更されて、トラックがアクティブまたは非アクティブになったときです。 +- {{domxref("VideoTrackList.onremovetrack", "onremovetrack")}} + - : {{event("removetrack")}} イベントが発生したときに呼び出されるイベントハンドラー。 動画トラックがメディア要素から取り除かれたことを示します。 + +## メソッド + +_このインターフェイスは、その親インターフェイスである {{domxref("EventTarget")}} からもメソッドを継承しています。_ + +- {{domxref("VideoTrackList.getTrackById", "getTrackById()")}} + - : 指定された文字列と {{domxref("VideoTrack.id", "id")}} が一致する `VideoTrackList` 内で見つかった {{domxref("VideoTrack")}} を返します。 一致が見つからない場合は、`null` を返します。 + +## イベント + +- {{domxref("VideoTrackList.addtrack_event", "addtrack")}} + - : 新しい動画トラックがメディア要素に追加されたときに発生します。 + {{domxref("VideoTrackList.onaddtrack", "onaddtrack")}} プロパティからも利用できます。 +- {{domxref("VideoTrackList.change_event", "change")}} + - : 動画トラックがアクティブまたは非アクティブになったときに発生します。 + {{domxref("VideoTrackList.onchange", "onchange")}} プロパティからも利用できます。 +- {{domxref("VideoTrackList.removetrack_event", "removetrack")}} + - : 動画トラックがメディア要素から取り除かれたときに発生します。 + {{domxref("VideoTrackList.onremovetrack", "onremovetrack")}} プロパティからも利用できます。 + +## 使用上の注意 + +`VideoTrackList` を使用すると、メディア要素にある動画トラックに直接アクセスできるだけでなく、{{event("addtrack")}} イベントと {{event("removetrack")}} イベントにイベントハンドラを設定できるため、メディア要素のストリームにトラックが追加されたときまたは取り除かれたときに検出できます。 詳細と例については、{{domxref("VideoTrackList.onaddtrack", "onaddtrack")}} と {{domxref("VideoTrackList.onremovetrack", "onremovetrack")}} を参照してください。 + +## 例 + +### メディア要素の動画トラックリストの取得 + +メディア要素の `VideoTrackList` を取得するには、その {{domxref("HTMLMediaElement.videoTracks", "videoTracks")}} プロパティを使用します。 + +```js +var videoTracks = document.querySelector("video").videoTracks; +``` + +### トラック数の変化の監視 + +この例では、利用可能なチャンネル数に関する情報を表示するアプリがあります。 それを最新に保つために、{{event("addtrack")}} と {{event("removetrack")}} イベントのためのハンドラが設定されています。 + +```js +videoTracks.onaddtrack = updateTrackCount; +videoTracks.onremovetrack = updateTrackCount; + +function updateTrackCount(event) { + trackCount = videoTracks.length; + drawTrackCountIndicator(trackCount); +} +``` + +## 仕様書 + +| 仕様書 | 状態 | 備考 | +| ------------------------------------------------------------------------------------ | -------------------------------- | ---- | +| {{SpecName('HTML WHATWG', '#videotracklist', 'VideoTrackList')}} | {{Spec2('HTML WHATWG')}} | | + +## ブラウザーの互換性 + +{{Compat("api.VideoTrackList")}} diff --git a/files/ja/web/api/videotracklist/length/index.html b/files/ja/web/api/videotracklist/length/index.html deleted file mode 100644 index 84502ba23c630a..00000000000000 --- a/files/ja/web/api/videotracklist/length/index.html +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: VideoTrackList.length -slug: Web/API/VideoTrackList/length -tags: - - API - - HTML DOM - - Media - - Property - - Read-only - - Reference - - Video - - VideoTrackList - - length - - list - - track -translation_of: Web/API/VideoTrackList/length ---- -
{{APIRef("HTML DOM")}}
- -

読み取り専用の {{domxref("VideoTrackList")}}length プロパティは、VideoTrackList 内のエントリ数を返します。 各エントリは、メディア要素内の1つの動画トラックを表す {{domxref("VideoTrack")}} です。 値 0 は、メディアに動画トラックがないことを示します。

- -

構文

- -
var trackCount = VideoTrackList.length;
- -

- -

VideoTrackList に含まれる動画トラック数を示す数値。 VideoTrackList を {{domxref("VideoTrack")}} 型のオブジェクトの配列として扱うことで、各トラックにアクセスできます。

- -

- -

このスニペットは、{{domxref("Document.querySelector", "querySelector()")}} によって {{Glossary("DOM")}} 内で見つかった最初の {{HTMLElement("video")}} 要素内の動画トラックの数を取得します。

- -
var videoElem = document.querySelector("video");
-var numVideoTracks = 0;
-
-if (videoElem.videoTracks) {
-  numVideoTracks = videoElem.videoTracks.length;
-}
-
- -

このサンプルは、{{domxref("VideoTrack")}} をサポートしていないブラウザーで失敗するのを避けるために、{{domxref("HTMLMediaElement.videoTracks")}} が定義されていることを確認していることに注意してください。

- -

仕様

- - - - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('HTML WHATWG', '#dom-videotracklist-length', 'VideoTrackList: length')}}{{Spec2('HTML WHATWG')}}
- -

ブラウザーの互換性

- - - -

{{Compat("api.VideoTrackList.length")}}

diff --git a/files/ja/web/api/videotracklist/length/index.md b/files/ja/web/api/videotracklist/length/index.md new file mode 100644 index 00000000000000..6c143bd5873e1b --- /dev/null +++ b/files/ja/web/api/videotracklist/length/index.md @@ -0,0 +1,53 @@ +--- +title: VideoTrackList.length +slug: Web/API/VideoTrackList/length +tags: + - API + - HTML DOM + - Media + - Property + - Read-only + - Reference + - Video + - VideoTrackList + - length + - list + - track +translation_of: Web/API/VideoTrackList/length +--- +{{APIRef("HTML DOM")}} + +読み取り専用の **{{domxref("VideoTrackList")}}** の **`length`** プロパティは、`VideoTrackList` 内のエントリ数を返します。 各エントリは、メディア要素内の 1 つの動画トラックを表す {{domxref("VideoTrack")}} です。 値 0 は、メディアに動画トラックがないことを示します。 + +## 構文 + + var trackCount = VideoTrackList.length; + +### 値 + +`VideoTrackList` に含まれる動画トラック数を示す数値。 `VideoTrackList` を {{domxref("VideoTrack")}} 型のオブジェクトの配列として扱うことで、各トラックにアクセスできます。 + +## 例 + +このスニペットは、{{domxref("Document.querySelector", "querySelector()")}} によって {{Glossary("DOM")}} 内で見つかった最初の {{HTMLElement("video")}} 要素内の動画トラックの数を取得します。 + +```js +var videoElem = document.querySelector("video"); +var numVideoTracks = 0; + +if (videoElem.videoTracks) { + numVideoTracks = videoElem.videoTracks.length; +} +``` + +このサンプルは、{{domxref("VideoTrack")}} をサポートしていないブラウザーで失敗するのを避けるために、{{domxref("HTMLMediaElement.videoTracks")}} が定義されていることを確認していることに注意してください。 + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------------------------------------------------------- | -------------------------------- | -------- | +| {{SpecName('HTML WHATWG', '#dom-videotracklist-length', 'VideoTrackList: length')}} | {{Spec2('HTML WHATWG')}} | | + +## ブラウザーの互換性 + +{{Compat("api.VideoTrackList.length")}} diff --git a/files/ja/web/api/videotracklist/removetrack_event/index.html b/files/ja/web/api/videotracklist/removetrack_event/index.html deleted file mode 100644 index 5aed835394a667..00000000000000 --- a/files/ja/web/api/videotracklist/removetrack_event/index.html +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: 'VideoTrackList: removetrack イベント' -slug: Web/API/VideoTrackList/removetrack_event -tags: - - API - - Media Streams API - - MediaStreamTrackEvent - - Reference - - Removing Tracks - - events - - removeTrack -translation_of: Web/API/VideoTrackList/removetrack_event ---- -
{{APIRef}}
- -

removeTrack イベントは、トラックが {{domxref("VideoTrackList")}} から取り除かれたときに発生します。

- - - - - - - - - - - - - - - - - - - - -
バブリングなし
キャンセル不可
インターフェイス{{domxref("TrackEvent")}}
イベントハンドラプロパティonremovetrack
- -

- -

AddEventListener() を使用する場合

- -
const videoElement = document.querySelector('video');
-
-videoElement.videoTracks.addEventListener('removetrack', (event) => {
-  console.log(`Video track: ${event.track.label} removed`);
-});
- -

onremovetrack イベントハンドラプロパティを使用する場合

- -
const videoElement = document.querySelector('video');
-
-videoElement.videoTracks.onremovetrack = (event) => {
-  console.log(`Video track: ${event.track.label} removed`);
-};
- -

仕様

- - - - - - - - - - - - -
仕様状態
{{SpecName('HTML WHATWG', 'media.html#event-media-removetrack', 'removetrack')}}{{Spec2('HTML WHATWG')}}
- -

ブラウザーの互換性

- - - -

{{Compat("api.VideoTrackList.removetrack_event")}}

- -

関連情報

- - diff --git a/files/ja/web/api/videotracklist/removetrack_event/index.md b/files/ja/web/api/videotracklist/removetrack_event/index.md new file mode 100644 index 00000000000000..1751dd85bccf04 --- /dev/null +++ b/files/ja/web/api/videotracklist/removetrack_event/index.md @@ -0,0 +1,62 @@ +--- +title: 'VideoTrackList: removetrack イベント' +slug: Web/API/VideoTrackList/removetrack_event +tags: + - API + - Media Streams API + - MediaStreamTrackEvent + - Reference + - Removing Tracks + - events + - removeTrack +translation_of: Web/API/VideoTrackList/removetrack_event +--- +{{APIRef}} + +`removeTrack` イベントは、トラックが {{domxref("VideoTrackList")}} から取り除かれたときに発生します。 + +| バブリング | なし | +| -------------------------- | ---------------------------------------------------------------- | +| キャンセル | 不可 | +| インターフェイス | {{domxref("TrackEvent")}} | +| イベントハンドラプロパティ | [`onremovetrack`](/ja/docs/Web/API/VideoTrackList/onremovetrack) | + +## 例 + +`AddEventListener()` を使用する場合 + +```js +const videoElement = document.querySelector('video'); + +videoElement.videoTracks.addEventListener('removetrack', (event) => { + console.log(`Video track: ${event.track.label} removed`); +}); +``` + +`onremovetrack` イベントハンドラプロパティを使用する場合 + +```js +const videoElement = document.querySelector('video'); + +videoElement.videoTracks.onremovetrack = (event) => { + console.log(`Video track: ${event.track.label} removed`); +}; +``` + +## 仕様 + +| 仕様 | 状態 | +| ------------------------------------------------------------------------------------------------------------ | -------------------------------- | +| {{SpecName('HTML WHATWG', 'media.html#event-media-removetrack', 'removetrack')}} | {{Spec2('HTML WHATWG')}} | + +## ブラウザーの互換性 + +{{Compat("api.VideoTrackList.removetrack_event")}} + +## 関連情報 + +- 関連イベント: [`addtrack`](/ja/docs/Web/API/VideoTrackList/addtrack_event), [`change`](/ja/docs/Web/API/VideoTrackList/change_event) +- [`AudioTrackList`](/ja/docs/Web/API/AudioTrackList) 対象でのこのイベント: [`removetrack`](/ja/docs/Web/API/AudioTrackList/removetrack_event) +- [`MediaStream`](/ja/docs/Web/API/MediaStream) 対象でのこのイベント: [`removetrack`](/ja/docs/Web/API/MediaStream/removetrack_event) +- [Media Streams API](/ja/docs/Web/API/Media_Streams_API) +- [WebRTC API](/ja/docs/Web/API/WebRTC_API) diff --git a/files/ja/web/api/videotracklist/selectedindex/index.html b/files/ja/web/api/videotracklist/selectedindex/index.html deleted file mode 100644 index 1652486da648b3..00000000000000 --- a/files/ja/web/api/videotracklist/selectedindex/index.html +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: VideoTrackList.selectedIndex -slug: Web/API/VideoTrackList/selectedIndex -tags: - - API - - HTML DOM - - Media - - Property - - Read-only - - Reference - - Video - - VideoTrackList - - track -translation_of: Web/API/VideoTrackList/selectedIndex ---- -
{{APIRef("HTML DOM")}}
- -

読み取り専用の {{domxref("VideoTrackList")}}selectedIndex プロパティは、現在選択されているトラックがある場合はそのインデックスを返し、それ以外の場合は -1 を返します。

- -

構文

- -
var index = VideoTrackList.selectedIndex;
- -

- -

現在選択されているトラックがある場合はそのインデックスを示す数値、それ以外の場合は -1

- -

仕様

- - - - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName('HTML WHATWG', '#dom-videotracklist-selectedindex', 'VideoTrackList: selectedIndex')}}{{Spec2('HTML WHATWG')}}
- -

ブラウザーの互換性

- - - -

{{Compat("api.VideoTrackList.selectedIndex")}}

diff --git a/files/ja/web/api/videotracklist/selectedindex/index.md b/files/ja/web/api/videotracklist/selectedindex/index.md new file mode 100644 index 00000000000000..4c339702fdec04 --- /dev/null +++ b/files/ja/web/api/videotracklist/selectedindex/index.md @@ -0,0 +1,36 @@ +--- +title: VideoTrackList.selectedIndex +slug: Web/API/VideoTrackList/selectedIndex +tags: + - API + - HTML DOM + - Media + - Property + - Read-only + - Reference + - Video + - VideoTrackList + - track +translation_of: Web/API/VideoTrackList/selectedIndex +--- +{{APIRef("HTML DOM")}} + +読み取り専用の **{{domxref("VideoTrackList")}}** の **`selectedIndex`** プロパティは、現在選択されているトラックがある場合はそのインデックスを返し、それ以外の場合は `-1` を返します。 + +## 構文 + + var index = VideoTrackList.selectedIndex; + +### 値 + +現在選択されているトラックがある場合はそのインデックスを示す数値、それ以外の場合は `-1`。 + +## 仕様 + +| 仕様 | 状態 | コメント | +| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- | -------- | +| {{SpecName('HTML WHATWG', '#dom-videotracklist-selectedindex', 'VideoTrackList: selectedIndex')}} | {{Spec2('HTML WHATWG')}} | | + +## ブラウザーの互換性 + +{{Compat("api.VideoTrackList.selectedIndex")}} diff --git a/files/ja/web/api/vrdisplaycapabilities/canpresent/index.html b/files/ja/web/api/vrdisplaycapabilities/canpresent/index.html deleted file mode 100644 index fed0a7ce9f4bd4..00000000000000 --- a/files/ja/web/api/vrdisplaycapabilities/canpresent/index.html +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: VRDisplayCapabilities.canPresent -slug: Web/API/VRDisplayCapabilities/canPresent -translation_of: Web/API/VRDisplayCapabilities/canPresent ---- -
{{APIRef("WebVR API")}}{{SeeCompatTable}}
- -

{{domxref("VRDisplayCapabilities")}} インターフェイスの canPresent 読取専用プロパティは,VRディスプレイが(HMDを通じて)コンテンツを表示(present)可能かどうかの状態を Boolean で返します.

- -

これは,6自由度追跡が可能だけれど {{domxref("VRDisplay.requestPresent()")}} は意味を成さない"マジックウィンドウ(magic window)"デバイスを識別するのに利用できます.canPresentfalse の場合, {{domxref("VRDisplay.requestPresent()")}} の呼出しは失敗し, {{domxref("VRDisplay.getEyeParameters()")}} は null を返すでしょう.

- -

シンタックス

- -
var canIPresent = vrDisplayCapabilitiesInstance.canPresent;
- -

- -

{{domxref("Boolean")}} の値.

- -

- -
TBD.
- -

仕様

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('WebVR', '#dom-vrdisplaycapabilities-canpresent', 'canPresent')}}{{Spec2('WebVR')}}Initial definition
- -

ブラウザの互換性

- -

{{Compat("api.VRDisplayCapabilities.canPresent")}}

- -

参照

- - diff --git a/files/ja/web/api/vrdisplaycapabilities/canpresent/index.md b/files/ja/web/api/vrdisplaycapabilities/canpresent/index.md new file mode 100644 index 00000000000000..b4f7ea081f9871 --- /dev/null +++ b/files/ja/web/api/vrdisplaycapabilities/canpresent/index.md @@ -0,0 +1,39 @@ +--- +title: VRDisplayCapabilities.canPresent +slug: Web/API/VRDisplayCapabilities/canPresent +translation_of: Web/API/VRDisplayCapabilities/canPresent +--- +{{APIRef("WebVR API")}}{{SeeCompatTable}} + +{{domxref("VRDisplayCapabilities")}} インターフェイスの **`canPresent`** 読取専用プロパティは,VR ディスプレイが(HMD を通じて)コンテンツを表示(present)可能かどうかの状態を [`Boolean`](/ja/docs/Web/API/Boolean "The documentation about this has not yet been written; please consider contributing!") で返します. + +これは,6 自由度追跡が可能だけれど {{domxref("VRDisplay.requestPresent()")}} は意味を成さない"マジックウィンドウ(magic window)"デバイスを識別するのに利用できます.`canPresent` が `false の場合`, {{domxref("VRDisplay.requestPresent()")}} の呼出しは失敗し, {{domxref("VRDisplay.getEyeParameters()")}} は `null を返すでしょう.` + +## シンタックス + +```js +var canIPresent = vrDisplayCapabilitiesInstance.canPresent; +``` + +### 値 + +{{domxref("Boolean")}} の値. + +## 例 + + TBD. + +## 仕様 + +| Specification | Status | Comment | +| ---------------------------------------------------------------------------------------------------- | ------------------------ | ------------------ | +| {{SpecName('WebVR', '#dom-vrdisplaycapabilities-canpresent', 'canPresent')}} | {{Spec2('WebVR')}} | Initial definition | + +## ブラウザの互換性 + +{{Compat("api.VRDisplayCapabilities.canPresent")}} + +## 参照 + +- [WebVR API homepage](/ja/docs/Web/API/WebVR_API). +- [MozVr.com](http://mozvr.com/) — Mozilla VR チームのデモ,ダウンロード,その他のリソース. diff --git a/files/ja/web/api/vrdisplaycapabilities/hasexternaldisplay/index.html b/files/ja/web/api/vrdisplaycapabilities/hasexternaldisplay/index.html deleted file mode 100644 index 3971902d2841d6..00000000000000 --- a/files/ja/web/api/vrdisplaycapabilities/hasexternaldisplay/index.html +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: VRDisplayCapabilities.hasExternalDisplay -slug: Web/API/VRDisplayCapabilities/hasExternalDisplay -translation_of: Web/API/VRDisplayCapabilities/hasExternalDisplay ---- -
{{APIRef("WebVR API")}}{{SeeCompatTable}}
- -

{{domxref("VRDisplayCapabilities")}} インターフェイスの hasExternalDisplay 読取専用プロパティは,デバイスのプライマリディスプレイから分離したVRディスプレイかどうかを示す {{domxref("Boolean")}} を返します.

- -
-

注記: 表示中のVRコンテンツがそのデバイスの他のコンテンツを隠してしまう場合 false を返します.この場合,表示されないので,アプリはVRコンテンツのミラリングしようとしたり非VRなUIを更新しようとするべきではありません.

- -

訳注: スマートフォンのVRを考えるとわかりやすいと思います.Oculus RiftのようなPC接続のVR専用のディスプレイを持たない環境の場合,このプロパティは false になります.

-
- -

シンタックス

- -
var hasAnExternalDisplay = vrDisplayCapabilitiesInstance.hasExternalDisplay;
- -

- -

{{domxref("Boolean")}} の値.

- -

- -
TBD.
- -

仕様

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('WebVR', '#dom-vrdisplaycapabilities-hasexternaldisplay', 'hasExternalDisplay')}}{{Spec2('WebVR')}}Initial definition
- -

ブラウザの互換性

- -

{{Compat("api.VRDisplayCapabilities.hasExternalDisplay")}}

- -

参照

- - diff --git a/files/ja/web/api/vrdisplaycapabilities/hasexternaldisplay/index.md b/files/ja/web/api/vrdisplaycapabilities/hasexternaldisplay/index.md new file mode 100644 index 00000000000000..5ad52f9dc128cd --- /dev/null +++ b/files/ja/web/api/vrdisplaycapabilities/hasexternaldisplay/index.md @@ -0,0 +1,39 @@ +--- +title: VRDisplayCapabilities.hasExternalDisplay +slug: Web/API/VRDisplayCapabilities/hasExternalDisplay +translation_of: Web/API/VRDisplayCapabilities/hasExternalDisplay +--- +{{APIRef("WebVR API")}}{{SeeCompatTable}} + +{{domxref("VRDisplayCapabilities")}} インターフェイスの **`hasExternalDisplay`** 読取専用プロパティは,デバイスのプライマリディスプレイから分離した VR ディスプレイかどうかを示す {{domxref("Boolean")}} を返します. + +> **Note:** **注記**: 表示中の VR コンテンツがそのデバイスの他のコンテンツを隠してしまう場合 `false` を返します.この場合,表示されないので,アプリは VR コンテンツのミラリングしようとしたり非 VR な UI を更新しようとするべきではありません.**訳注**: スマートフォンの VR を考えるとわかりやすいと思います.Oculus Rift のような PC 接続の VR 専用のディスプレイを持たない環境の場合,このプロパティは `false` になります. + +## シンタックス + +```js +var hasAnExternalDisplay = vrDisplayCapabilitiesInstance.hasExternalDisplay; +``` + +### 値 + +{{domxref("Boolean")}} の値. + +## 例 + + TBD. + +## 仕様 + +| Specification | Status | Comment | +| ---------------------------------------------------------------------------------------------------------------------------- | ------------------------ | ------------------ | +| {{SpecName('WebVR', '#dom-vrdisplaycapabilities-hasexternaldisplay', 'hasExternalDisplay')}} | {{Spec2('WebVR')}} | Initial definition | + +## ブラウザの互換性 + +{{Compat("api.VRDisplayCapabilities.hasExternalDisplay")}} + +## 参照 + +- [WebVR API homepage](/ja/docs/Web/API/WebVR_API). +- [MozVr.com](http://mozvr.com/) — Mozilla VR チームのデモ,ダウンロード,その他のリソース. diff --git a/files/ja/web/api/vrdisplaycapabilities/hasorientation/index.html b/files/ja/web/api/vrdisplaycapabilities/hasorientation/index.html deleted file mode 100644 index 4cb019eb9fb3a8..00000000000000 --- a/files/ja/web/api/vrdisplaycapabilities/hasorientation/index.html +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: VRDisplayCapabilities.hasOrientation -slug: Web/API/VRDisplayCapabilities/hasOrientation -translation_of: Web/API/VRDisplayCapabilities/hasOrientation ---- -
{{APIRef("WebVR API")}}{{SeeCompatTable}}
- -

{{domxref("VRDisplayCapabilities")}} インターフェイスの hasOrientation 読取専用プロパティは, そのVRディスプレイがトラッキング機能を持っていて向き情報を取得できるかどうかを示す {{domxref("Boolean")}} を返します.

- -

シンタックス

- -
var hasItGotOrientation = vrDisplayCapabilitiesInstance.hasOrientation;
- -

- -

{{domxref("Boolean")}} の値.

- -

- -
TBD.
- -

仕様

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('WebVR', '#dom-vrdisplaycapabilities-hasorientation', 'hasOrientation')}}{{Spec2('WebVR')}}Initial definition
- -

ブラウザの互換性

- -

{{Compat("api.VRDisplayCapabilities.hasOrientation")}}

- -

参照

- - diff --git a/files/ja/web/api/vrdisplaycapabilities/hasorientation/index.md b/files/ja/web/api/vrdisplaycapabilities/hasorientation/index.md new file mode 100644 index 00000000000000..6d8f8056d72d2f --- /dev/null +++ b/files/ja/web/api/vrdisplaycapabilities/hasorientation/index.md @@ -0,0 +1,37 @@ +--- +title: VRDisplayCapabilities.hasOrientation +slug: Web/API/VRDisplayCapabilities/hasOrientation +translation_of: Web/API/VRDisplayCapabilities/hasOrientation +--- +{{APIRef("WebVR API")}}{{SeeCompatTable}} + +{{domxref("VRDisplayCapabilities")}} インターフェイスの **`hasOrientation`** 読取専用プロパティは, その VR ディスプレイがトラッキング機能を持っていて向き情報を取得できるかどうかを示す {{domxref("Boolean")}} を返します. + +## シンタックス + +```js +var hasItGotOrientation = vrDisplayCapabilitiesInstance.hasOrientation; +``` + +### 値 + +{{domxref("Boolean")}} の値. + +## 例 + + TBD. + +## 仕様 + +| Specification | Status | Comment | +| ---------------------------------------------------------------------------------------------------------------- | ------------------------ | ------------------ | +| {{SpecName('WebVR', '#dom-vrdisplaycapabilities-hasorientation', 'hasOrientation')}} | {{Spec2('WebVR')}} | Initial definition | + +## ブラウザの互換性 + +{{Compat("api.VRDisplayCapabilities.hasOrientation")}} + +## 参照 + +- [WebVR API homepage](/ja/docs/Web/API/WebVR_API). +- [MozVr.com](http://mozvr.com/) — Mozilla VR チームのデモ,ダウンロード,その他のリソース. diff --git a/files/ja/web/api/vrdisplaycapabilities/hasposition/index.html b/files/ja/web/api/vrdisplaycapabilities/hasposition/index.html deleted file mode 100644 index acc8427ce3f8fc..00000000000000 --- a/files/ja/web/api/vrdisplaycapabilities/hasposition/index.html +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: VRDisplayCapabilities.hasPosition -slug: Web/API/VRDisplayCapabilities/hasPosition -translation_of: Web/API/VRDisplayCapabilities/hasPosition ---- -
{{APIRef("WebVR API")}}{{SeeCompatTable}}
- -

{{domxref("VRDisplayCapabilities")}} インターフェイスの hasPosition 読取専用プロパティは,そのVRディスプレイがトラッキング機能を備えていて位置情報を返すことができるかどうかを示す {{domxref("Boolean")}} を返します.

- -

シンタックス

- -
var hasItGotPosition = vrDisplayCapabilitiesInstance.hasPosition;
- -

- -

{{domxref("Boolean")}} の値.

- -

- -
TBD.
- -

仕様

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('WebVR', '#dom-vrdisplaycapabilities-hasposition', 'hasPosition')}}{{Spec2('WebVR')}}Initial definition
- -

ブラウザの互換性

- -

{{Compat("api.VRDisplayCapabilities.hasPosition")}}

- -

参照

- - diff --git a/files/ja/web/api/vrdisplaycapabilities/hasposition/index.md b/files/ja/web/api/vrdisplaycapabilities/hasposition/index.md new file mode 100644 index 00000000000000..40c1df760a2b8b --- /dev/null +++ b/files/ja/web/api/vrdisplaycapabilities/hasposition/index.md @@ -0,0 +1,37 @@ +--- +title: VRDisplayCapabilities.hasPosition +slug: Web/API/VRDisplayCapabilities/hasPosition +translation_of: Web/API/VRDisplayCapabilities/hasPosition +--- +{{APIRef("WebVR API")}}{{SeeCompatTable}} + +{{domxref("VRDisplayCapabilities")}} インターフェイスの **`hasPosition`** 読取専用プロパティは,その VR ディスプレイがトラッキング機能を備えていて位置情報を返すことができるかどうかを示す {{domxref("Boolean")}} を返します. + +## シンタックス + +```js +var hasItGotPosition = vrDisplayCapabilitiesInstance.hasPosition; +``` + +### 値 + +{{domxref("Boolean")}} の値. + +## 例 + + TBD. + +## 仕様 + +| Specification | Status | Comment | +| -------------------------------------------------------------------------------------------------------- | ------------------------ | ------------------ | +| {{SpecName('WebVR', '#dom-vrdisplaycapabilities-hasposition', 'hasPosition')}} | {{Spec2('WebVR')}} | Initial definition | + +## ブラウザの互換性 + +{{Compat("api.VRDisplayCapabilities.hasPosition")}} + +## 参照 + +- [WebVR API homepage](/ja/docs/Web/API/WebVR_API). +- [MozVr.com](http://mozvr.com/) — Mozilla VR チームのデモ,ダウンロード,その他のリソース. diff --git a/files/ja/web/api/vrdisplaycapabilities/index.html b/files/ja/web/api/vrdisplaycapabilities/index.html deleted file mode 100644 index 7eebde3ec9ac4a..00000000000000 --- a/files/ja/web/api/vrdisplaycapabilities/index.html +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: VRDisplayCapabilities -slug: Web/API/VRDisplayCapabilities -translation_of: Web/API/VRDisplayCapabilities ---- -
{{APIRef("WebVR API")}}{{SeeCompatTable}}
- -

WebVR APIVRDisplayCapabilities インターフェイスは {{domxref("VRDisplay")}} の利用可能な機能を示しています — この機能は,例えば位置情報を返すことが可能か,といったVRデバイスの動作可能テストに使うことができます.

- -

このインターフェイスには {{domxref("VRDisplay.capabilities")}} プロパティを通じてアクセスできます.

- -

プロパティ

- -
-
{{domxref("VRDisplayCapabilities.canPresent")}} {{readonlyInline}}
-
VRディスプレイが(HMDを通じて)コンテンツを表示(present)可能かどうかの状態を {{domxref("Boolean")}} で返します.
-
{{domxref("VRDisplayCapabilities.hasExternalDisplay")}} {{readonlyInline}}
-
デバイスのプライマリディスプレイから分離したVRディスプレイかどうかを示す {{domxref("Boolean")}} を返します.
-
{{domxref("VRDisplayCapabilities.hasOrientation")}} {{deprecated_inline()}} {{readonlyInline}}
-
VRディスプレイがトラッキング可能で向き情報を返すことができるかを示す {{domxref("Boolean")}} を返します.
-
{{domxref("VRDisplayCapabilities.hasPosition")}} {{readonlyInline}}
-
VRディスプレイがトラッキング可能で位置情報を返すことができるかどうかを示す {{domxref("Boolean")}} を返します.
-
{{domxref("VRDisplayCapabilities.maxLayers")}} {{readonlyInline}}
-
VRディスプレイが同時に表示できる {{domxref("VRLayer")}} の最大値を示す数値を返します (例えば {{domxref("VRDisplay.requestPresent()")}} が受け取ることのできる配列の最大長です.)
-
- -

- -
function reportDisplays() {
-  navigator.getVRDisplays().then(function(displays) {
-    for(var i = 0; i < displays.length; i++) {
-      var cap = displays[i].capabilities;
-      // cap is a VRDisplayCapabilities object
-      var listItem = document.createElement('li');
-      listItem.innerHTML = '<strong>Display ' + (i+1) + '</strong>'
-                   + '<br>VR Display ID: ' + displays[i].displayId
-                   + '<br>VR Display Name: ' + displays[i].displayName
-                   + '<br>Display can present content: ' + cap.canPresent
-                   + '<br>Display is separate from the computer\'s main display: ' + cap.hasExternalDisplay
-                   + '<br>Display can return position info: ' + cap.hasPosition
-                   + '<br>Display can return orientation info: ' + cap.hasOrientation
-                   + '<br>Display max layers: ' + cap.maxLayers;
-      list.appendChild(listItem);
-    }
-  });
-}
- -

仕様

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('WebVR 1.1', '#interface-vrdisplaycapabilities', 'VRDisplayCapabilities')}}{{Spec2('WebVR 1.1')}}Initial definition
- -

ブラウザの互換性

- -

{{Compat("api.VRDisplayCapabilities")}}

- -

参照

- - diff --git a/files/ja/web/api/vrdisplaycapabilities/index.md b/files/ja/web/api/vrdisplaycapabilities/index.md new file mode 100644 index 00000000000000..96823e5bbf36c7 --- /dev/null +++ b/files/ja/web/api/vrdisplaycapabilities/index.md @@ -0,0 +1,61 @@ +--- +title: VRDisplayCapabilities +slug: Web/API/VRDisplayCapabilities +translation_of: Web/API/VRDisplayCapabilities +--- +{{APIRef("WebVR API")}}{{SeeCompatTable}} + +[WebVR API](/ja/docs/Web/API/WebVR_API) の **`VRDisplayCapabilities`** インターフェイスは {{domxref("VRDisplay")}} の利用可能な機能を示しています — この機能は,例えば位置情報を返すことが可能か,といった VR デバイスの動作可能テストに使うことができます. + +このインターフェイスには {{domxref("VRDisplay.capabilities")}} プロパティを通じてアクセスできます. + +## プロパティ + +- {{domxref("VRDisplayCapabilities.canPresent")}} {{readonlyInline}} + - : VR ディスプレイが(HMD を通じて)コンテンツを表示(present)可能かどうかの状態を {{domxref("Boolean")}} で返します. +- {{domxref("VRDisplayCapabilities.hasExternalDisplay")}} {{readonlyInline}} + - : デバイスのプライマリディスプレイから分離した VR ディスプレイかどうかを示す {{domxref("Boolean")}} を返します. +- {{domxref("VRDisplayCapabilities.hasOrientation")}} {{deprecated_inline()}} {{readonlyInline}} + - : VR ディスプレイがトラッキング可能で向き情報を返すことができるかを示す {{domxref("Boolean")}} を返します. +- {{domxref("VRDisplayCapabilities.hasPosition")}} {{readonlyInline}} + - : VR ディスプレイがトラッキング可能で位置情報を返すことができるかどうかを示す {{domxref("Boolean")}} を返します. +- {{domxref("VRDisplayCapabilities.maxLayers")}} {{readonlyInline}} + - : VR ディスプレイが同時に表示できる {{domxref("VRLayer")}} の最大値を示す数値を返します (例えば {{domxref("VRDisplay.requestPresent()")}} が受け取ることのできる配列の最大長です.) + +## 例 + +```js +function reportDisplays() { + navigator.getVRDisplays().then(function(displays) { + for(var i = 0; i < displays.length; i++) { + var cap = displays[i].capabilities; + // cap is a VRDisplayCapabilities object + var listItem = document.createElement('li'); + listItem.innerHTML = 'Display ' + (i+1) + '' + + '
VR Display ID: ' + displays[i].displayId + + '
VR Display Name: ' + displays[i].displayName + + '
Display can present content: ' + cap.canPresent + + '
Display is separate from the computer\'s main display: ' + cap.hasExternalDisplay + + '
Display can return position info: ' + cap.hasPosition + + '
Display can return orientation info: ' + cap.hasOrientation + + '
Display max layers: ' + cap.maxLayers; + list.appendChild(listItem); + } + }); +} +``` + +## 仕様 + +| Specification | Status | Comment | +| -------------------------------------------------------------------------------------------------------------------- | ---------------------------- | ------------------ | +| {{SpecName('WebVR 1.1', '#interface-vrdisplaycapabilities', 'VRDisplayCapabilities')}} | {{Spec2('WebVR 1.1')}} | Initial definition | + +## ブラウザの互換性 + +{{Compat("api.VRDisplayCapabilities")}} + +## 参照 + +- [WebVR API homepage](/ja/docs/Web/API/WebVR_API). +- [MozVr.com](http://mozvr.com/) — Mozilla VR チームのデモ,ダウンロード,その他のリソース. diff --git a/files/ja/web/api/vrdisplaycapabilities/maxlayers/index.html b/files/ja/web/api/vrdisplaycapabilities/maxlayers/index.html deleted file mode 100644 index ec70eecf85e0f7..00000000000000 --- a/files/ja/web/api/vrdisplaycapabilities/maxlayers/index.html +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: VRDisplayCapabilities.maxLayers -slug: Web/API/VRDisplayCapabilities/maxLayers -translation_of: Web/API/VRDisplayCapabilities/maxLayers ---- -
{{APIRef("WebVR API")}}{{SeeCompatTable}}
- -

{{domxref("VRDisplayCapabilities")}} インターフェイスの maxLayers 読取専用プロパティは,そのVRディスプレイが同時に表示できる {{domxref("VRLayer")}} の最大値を示す数値を返します(例えば {{domxref("Display.requestPresent()")}} が受け取ることのできる配列の最大長です).

- -

シンタックス

- -
var maximumLayers = vrDisplayCapabilitiesInstance.maxLayers;
- -

- -

数値であり,{{domxref("VRDisplayCapabilities.canPresent")}} が true の場合は1でなければなりません,それ以外は 0 です.

- -

- -
TBD.
- -

仕様

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('WebVR', '#dom-vrdisplaycapabilities-maxlayers', 'maxLayers')}}{{Spec2('WebVR')}}Initial definition
- -

ブラウザの互換性

- -

{{Compat("api.VRDisplayCapabilities.maxLayers")}}

- -

参照

- - diff --git a/files/ja/web/api/vrdisplaycapabilities/maxlayers/index.md b/files/ja/web/api/vrdisplaycapabilities/maxlayers/index.md new file mode 100644 index 00000000000000..372e18bf9a8beb --- /dev/null +++ b/files/ja/web/api/vrdisplaycapabilities/maxlayers/index.md @@ -0,0 +1,37 @@ +--- +title: VRDisplayCapabilities.maxLayers +slug: Web/API/VRDisplayCapabilities/maxLayers +translation_of: Web/API/VRDisplayCapabilities/maxLayers +--- +{{APIRef("WebVR API")}}{{SeeCompatTable}} + +{{domxref("VRDisplayCapabilities")}} インターフェイスの **`maxLayers`** 読取専用プロパティは,その VR ディスプレイが同時に表示できる {{domxref("VRLayer")}} の最大値を示す数値を返します(例えば {{domxref("Display.requestPresent()")}} が受け取ることのできる配列の最大長です). + +## シンタックス + +```js +var maximumLayers = vrDisplayCapabilitiesInstance.maxLayers; +``` + +### 値 + +数値であり,{{domxref("VRDisplayCapabilities.canPresent")}} が `true の場合は1でなければなりません,`それ以外は 0 です. + +## 例 + + TBD. + +## 仕様 + +| Specification | Status | Comment | +| ---------------------------------------------------------------------------------------------------- | ------------------------ | ------------------ | +| {{SpecName('WebVR', '#dom-vrdisplaycapabilities-maxlayers', 'maxLayers')}} | {{Spec2('WebVR')}} | Initial definition | + +## ブラウザの互換性 + +{{Compat("api.VRDisplayCapabilities.maxLayers")}} + +## 参照 + +- [WebVR API homepage](/ja/docs/Web/API/WebVR_API). +- [MozVr.com](http://mozvr.com/) — Mozilla VR チームのデモ,ダウンロード,その他のリソース. diff --git a/files/ja/web/api/vrdisplayevent/index.html b/files/ja/web/api/vrdisplayevent/index.html deleted file mode 100644 index 075ebb41074b6c..00000000000000 --- a/files/ja/web/api/vrdisplayevent/index.html +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: VRDisplayEvent -slug: Web/API/VRDisplayEvent -tags: - - API - - Experimental - - Interface - - Reference - - VR - - VRDisplayEvent - - Virtual Reality - - WebVR -translation_of: Web/API/VRDisplayEvent ---- -
{{APIRef("WebVR API")}}{{SeeCompatTable}}
- -

WebVR APIVRDisplayEvent インターフェイスは、 WebVR 関連イベントのイベントオブジェクトを表します (WebVR ウインドウ拡張機能のリストを参照)。

- -

コンストラクタ

- -
-
{{domxref("VRDisplayEvent.VRDisplayEvent()")}}
-
VRDisplayEvent オブジェクトのインスタンスを生成します。
-
- -

プロパティ

- -

VRDisplayEvent は、親オブジェクト {{domxref("Event")}} からプロパティも継承します。

- -
-
{{domxref("VRDisplayEvent.display")}} {{readonlyInline}}
-
このイベントに関連付けられた {{domxref("VRDisplay")}} 。
-
{{domxref("VRDisplayEvent.reason")}} {{readonlyInline}}
-
イベントが発生したヒューマンリーダブルな理由。
-
- -

- -
window.addEventListener('vrdisplaypresentchange', function(e) {
-  console.log('Display ' + e.display.displayId + ' presentation has changed. Reason given: ' + e.reason + '.');
-})
-
- -

仕様

- - - - - - - - - - - - - - -
仕様ステータス備考
{{SpecName('WebVR 1.1', '#interface-vrdisplayevent', 'VRDisplayEvent')}}{{Spec2('WebVR 1.1')}}初回定義
- -

ブラウザー実装状況

- -

{{Compat("api.VRDisplayEvent")}}

- -

関連項目

- - diff --git a/files/ja/web/api/vrdisplayevent/index.md b/files/ja/web/api/vrdisplayevent/index.md new file mode 100644 index 00000000000000..9203cbccf2a82d --- /dev/null +++ b/files/ja/web/api/vrdisplayevent/index.md @@ -0,0 +1,54 @@ +--- +title: VRDisplayEvent +slug: Web/API/VRDisplayEvent +tags: + - API + - Experimental + - Interface + - Reference + - VR + - VRDisplayEvent + - Virtual Reality + - WebVR +translation_of: Web/API/VRDisplayEvent +--- +{{APIRef("WebVR API")}}{{SeeCompatTable}} + +[WebVR API](/ja/docs/Web/API/WebVR_API) の **`VRDisplayEvent`** インターフェイスは、 WebVR 関連イベントのイベントオブジェクトを表します ([WebVR ウインドウ拡張機能のリスト](/ja/docs/Web/API/WebVR_API#Window)を参照)。 + +## コンストラクタ + +- {{domxref("VRDisplayEvent.VRDisplayEvent()")}} + - : `VRDisplayEvent` オブジェクトのインスタンスを生成します。 + +## プロパティ + +_`VRDisplayEvent` は、親オブジェクト {{domxref("Event")}} からプロパティも継承します。_ + +- {{domxref("VRDisplayEvent.display")}} {{readonlyInline}} + - : このイベントに関連付けられた {{domxref("VRDisplay")}} 。 +- {{domxref("VRDisplayEvent.reason")}} {{readonlyInline}} + - : イベントが発生したヒューマンリーダブルな理由。 + +## 例 + +```js +window.addEventListener('vrdisplaypresentchange', function(e) { + console.log('Display ' + e.display.displayId + ' presentation has changed. Reason given: ' + e.reason + '.'); +}) +``` + +## 仕様 + +| 仕様 | ステータス | 備考 | +| ------------------------------------------------------------------------------------------------ | ---------------------------- | -------- | +| {{SpecName('WebVR 1.1', '#interface-vrdisplayevent', 'VRDisplayEvent')}} | {{Spec2('WebVR 1.1')}} | 初回定義 | + +## ブラウザー実装状況 + +{{Compat("api.VRDisplayEvent")}} + +## 関連項目 + +- [WebVR API homepage](/ja/docs/Web/API/WebVR_API) +- [MozVr.com](http://mozvr.com/) — demos, downloads, and other resources from the Mozilla VR team. diff --git a/files/ja/web/api/vreyeparameters/fieldofview/index.html b/files/ja/web/api/vreyeparameters/fieldofview/index.html deleted file mode 100644 index a29a6023cef26f..00000000000000 --- a/files/ja/web/api/vreyeparameters/fieldofview/index.html +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: VREyeParameters.fieldOfView -slug: Web/API/VREyeParameters/fieldOfView -translation_of: Web/API/VREyeParameters/fieldOfView ---- -

{{APIRef("WebVR API")}}{{SeeCompatTable}}

- -

{{domxref("VREyeParameters")}} インターフェイスの fieldOfView 読取専用プロパティは,現在の眼の視野角(field of view)を表します.この値は瞳孔間距離(IPD)をユーザが調整するとそれに応じて変化します.

- -

シンタックス

- -
var curFOV = myVRDisplay.getEyeParameters('left').fieldOfView;
- -

- -

{{domxref("VRFieldOfView")}} オブジェクト.

- -

- -
TBD.
- -

仕様

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('WebVR', '#dom-vreyeparameters-fieldofview', 'fieldOfView')}}{{Spec2('WebVR')}}Initial definition
- -

ブラウザの互換性

- -

{{Compat("api.VREyeParameters.fieldOfView")}}

- -

参照

- - diff --git a/files/ja/web/api/vreyeparameters/fieldofview/index.md b/files/ja/web/api/vreyeparameters/fieldofview/index.md new file mode 100644 index 00000000000000..273b9c9d60835f --- /dev/null +++ b/files/ja/web/api/vreyeparameters/fieldofview/index.md @@ -0,0 +1,37 @@ +--- +title: VREyeParameters.fieldOfView +slug: Web/API/VREyeParameters/fieldOfView +translation_of: Web/API/VREyeParameters/fieldOfView +--- +{{APIRef("WebVR API")}}{{SeeCompatTable}} + +{{domxref("VREyeParameters")}} インターフェイスの **`fieldOfView`** 読取専用プロパティは,現在の眼の視野角(field of view)を表します.この値は瞳孔間距離(IPD)をユーザが調整するとそれに応じて変化します. + +## シンタックス + +```js +var curFOV = myVRDisplay.getEyeParameters('left').fieldOfView; +``` + +### 値 + +{{domxref("VRFieldOfView")}} オブジェクト. + +## 例 + + TBD. + +## 仕様 + +| Specification | Status | Comment | +| ------------------------------------------------------------------------------------------------ | ------------------------ | ------------------ | +| {{SpecName('WebVR', '#dom-vreyeparameters-fieldofview', 'fieldOfView')}} | {{Spec2('WebVR')}} | Initial definition | + +## ブラウザの互換性 + +{{Compat("api.VREyeParameters.fieldOfView")}} + +## 参照 + +- [WebVR API homepage](/ja/docs/Web/API/WebVR_API). +- [MozVr.com](http://mozvr.com/) — Mozilla VR チームのデモ,ダウンロード,その他のリソース. diff --git a/files/ja/web/api/vreyeparameters/index.html b/files/ja/web/api/vreyeparameters/index.html deleted file mode 100644 index 3c6193021414dd..00000000000000 --- a/files/ja/web/api/vreyeparameters/index.html +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: VREyeParameters -slug: Web/API/VREyeParameters -translation_of: Web/API/VREyeParameters ---- -
{{APIRef("WebVR API")}}{{SeeCompatTable}}
- -

WebVR APIVREyeParameters インターフェイスは,指定した眼のためにシーンを正しくレンダリングするためのすべての情報(視界(field of view)の情報を含む)を表現します.

- -

このインターフェイスは {{domxref("VRDisplay.getEyeParameters()")}} メソッドを通じてアクセスできます.

- -

プロパティ

- -
-
{{domxref("VREyeParameters.offset")}} {{readonlyInline}}
-
ユーザの両眼の中心点から指定した眼の中心へのオフセット量を示します.単位はメートルです.
-
{{domxref("VREyeParameters.fieldOfView")}} {{readonlyInline}}
-
指定した眼の現在の視界(FOV)を示しています.これはユーザが瞳孔間距離(IPD)の調整することによって変化します.
-
{{domxref("VREyeParameters.renderWidth")}} {{readonlyInline}}
-
それぞれの眼のビューポートの推奨レンダーターゲット幅を示します.単位はピクセルです.
-
{{domxref("VREyeParameters.renderHeight")}} {{readonlyInline}}
-
それぞれの眼のビューポートの推奨レンダーターゲット高さを示します.単位はピクセルです.
-
- -

- -
TBD.
- -

仕様

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('WebVR', '#vreyeparameters', 'VREyeParameters')}}{{Spec2('WebVR')}}Initial definition
- -

ブラウザの互換性

- -

{{Compat("api.VREyeParameters")}}

- -

See also

- - diff --git a/files/ja/web/api/vreyeparameters/index.md b/files/ja/web/api/vreyeparameters/index.md new file mode 100644 index 00000000000000..bbf0352ac1aef1 --- /dev/null +++ b/files/ja/web/api/vreyeparameters/index.md @@ -0,0 +1,40 @@ +--- +title: VREyeParameters +slug: Web/API/VREyeParameters +translation_of: Web/API/VREyeParameters +--- +{{APIRef("WebVR API")}}{{SeeCompatTable}} + +[WebVR API](/ja/docs/Web/API/WebVR_API) の **`VREyeParameters`** インターフェイスは,指定した眼のためにシーンを正しくレンダリングするためのすべての情報(視界(field of view)の情報を含む)を表現します. + +このインターフェイスは {{domxref("VRDisplay.getEyeParameters()")}} メソッドを通じてアクセスできます. + +## プロパティ + +- {{domxref("VREyeParameters.offset")}} {{readonlyInline}} + - : _ユーザの両眼の中心点から指定した眼の中心へのオフセット量を示します.単位はメートルです._ +- {{domxref("VREyeParameters.fieldOfView")}} {{readonlyInline}} + - : _指定した眼の現在の視界(FOV)を示しています.これはユーザが瞳孔間距離(IPD)の調整することによって変化します._ +- {{domxref("VREyeParameters.renderWidth")}} {{readonlyInline}} + - : それぞれの眼のビューポートの推奨レンダーターゲット幅を示します.単位はピクセルです. +- {{domxref("VREyeParameters.renderHeight")}} {{readonlyInline}} + - : それぞれの眼のビューポートの推奨レンダーターゲット高さを示します.単位はピクセルです. + +## 例 + + TBD. + +## 仕様 + +| Specification | Status | Comment | +| -------------------------------------------------------------------------------- | ------------------------ | ------------------ | +| {{SpecName('WebVR', '#vreyeparameters', 'VREyeParameters')}} | {{Spec2('WebVR')}} | Initial definition | + +## ブラウザの互換性 + +{{Compat("api.VREyeParameters")}} + +## See also + +- [WebVR API homepage](/ja/docs/Web/API/WebVR_API). +- [MozVr.com](http://mozvr.com/) — Mozilla VR チームのデモ,ダウンロード,その他のリソース. diff --git a/files/ja/web/api/vreyeparameters/offset/index.html b/files/ja/web/api/vreyeparameters/offset/index.html deleted file mode 100644 index c90cc903081d5d..00000000000000 --- a/files/ja/web/api/vreyeparameters/offset/index.html +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: VREyeParameters.offset -slug: Web/API/VREyeParameters/offset -translation_of: Web/API/VREyeParameters/offset ---- -

{{APIRef("WebVR API")}}{{SeeCompatTable}}

- -

{{domxref("VREyeParameters")}} インターフェイスの offset 読取専用プロパティは,ユーザの両眼の中心からのオフセット量を表します.単位はメートルです.

- -

この値は,ユーザの瞳孔間距離(IPD)の半分になっているべきですが,指定した側の眼のレンズの中心とヘッドセットの中心との距離を表す場合があります.

- -

シンタックス

- -
var myEyeTranslation = myVRDisplay.getEyeParameters('left').offset;
- -

- -

{{domxref("Float32Array")}}.

- -
-

注記: 左目の値は負で,右目の場合は正の値になります.

-
- -

- -
TBD.
- -

仕様

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('WebVR', '#dom-vreyeparameters-offset', 'offset')}}{{Spec2('WebVR')}}Initial definition
- -

ブラウザの互換性

- -

{{Compat("api.VREyeParameters.offset")}}

- -

参照

- - diff --git a/files/ja/web/api/vreyeparameters/offset/index.md b/files/ja/web/api/vreyeparameters/offset/index.md new file mode 100644 index 00000000000000..245e55ceedab3a --- /dev/null +++ b/files/ja/web/api/vreyeparameters/offset/index.md @@ -0,0 +1,41 @@ +--- +title: VREyeParameters.offset +slug: Web/API/VREyeParameters/offset +translation_of: Web/API/VREyeParameters/offset +--- +{{APIRef("WebVR API")}}{{SeeCompatTable}} + +{{domxref("VREyeParameters")}} インターフェイスの **`offset`** 読取専用プロパティは,ユーザの両眼の中心からのオフセット量を表します.単位はメートルです. + +この値は,ユーザの瞳孔間距離(IPD)の半分になっているべきですが,指定した側の眼のレンズの中心とヘッドセットの中心との距離を表す場合があります. + +## シンタックス + +```js +var myEyeTranslation = myVRDisplay.getEyeParameters('left').offset; +``` + +### 値 + +{{domxref("Float32Array")}}. + +> **Note:** _**注記**: 左目の値は負で,右目の場合は正の値になります._ + +## 例 + + TBD. + +## 仕様 + +| Specification | Status | Comment | +| ------------------------------------------------------------------------------------ | ------------------------ | ------------------ | +| {{SpecName('WebVR', '#dom-vreyeparameters-offset', 'offset')}} | {{Spec2('WebVR')}} | Initial definition | + +## ブラウザの互換性 + +{{Compat("api.VREyeParameters.offset")}} + +## 参照 + +- [WebVR API homepage](/ja/docs/Web/API/WebVR_API). +- [MozVr.com](http://mozvr.com/) — Mozilla VR チームのデモ,ダウンロード,その他のリソース. diff --git a/files/ja/web/api/vreyeparameters/renderheight/index.html b/files/ja/web/api/vreyeparameters/renderheight/index.html deleted file mode 100644 index 94763a10136489..00000000000000 --- a/files/ja/web/api/vreyeparameters/renderheight/index.html +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: VREyeParameters.renderHeight -slug: Web/API/VREyeParameters/renderHeight -translation_of: Web/API/VREyeParameters/renderHeight ---- -

{{APIRef("WebVR API")}}{{SeeCompatTable}}

- -

{{domxref("VREyeParameters")}} インターフェイスの renderHeight 読取専用プロパティは,各眼のビューポートの推奨レンダーターゲット高さをピクセル値で表します.

- -

シンタックス

- -
var curRenderHeight = myVRDisplay.getEyeParameters('left').renderHeight;
- -

- -

高さを表す数値.ピクセル単位.

- -

- -
TBD.
- -

仕様

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('WebVR', '#dom-vreyeparameters-renderheight', 'renderHeight')}}{{Spec2('WebVR')}}Initial definition
- -

ブラウザの互換性

- -

{{Compat("api.VREyeParameters.renderHeight")}}

- -

参照

- - diff --git a/files/ja/web/api/vreyeparameters/renderheight/index.md b/files/ja/web/api/vreyeparameters/renderheight/index.md new file mode 100644 index 00000000000000..216f093021997d --- /dev/null +++ b/files/ja/web/api/vreyeparameters/renderheight/index.md @@ -0,0 +1,37 @@ +--- +title: VREyeParameters.renderHeight +slug: Web/API/VREyeParameters/renderHeight +translation_of: Web/API/VREyeParameters/renderHeight +--- +{{APIRef("WebVR API")}}{{SeeCompatTable}} + +{{domxref("VREyeParameters")}} インターフェイスの **`renderHeight`** 読取専用プロパティは,各眼のビューポートの推奨レンダーターゲット高さをピクセル値で表します. + +## シンタックス + +```js +var curRenderHeight = myVRDisplay.getEyeParameters('left').renderHeight; +``` + +### 値 + +高さを表す数値.ピクセル単位. + +## 例 + + TBD. + +## 仕様 + +| Specification | Status | Comment | +| ---------------------------------------------------------------------------------------------------- | ------------------------ | ------------------ | +| {{SpecName('WebVR', '#dom-vreyeparameters-renderheight', 'renderHeight')}} | {{Spec2('WebVR')}} | Initial definition | + +## ブラウザの互換性 + +{{Compat("api.VREyeParameters.renderHeight")}} + +## 参照 + +- [WebVR API homepage](/ja/docs/Web/API/WebVR_API). +- [MozVr.com](http://mozvr.com/) — Mozilla VR チームのデモ,ダウンロード,その他のリソース. diff --git a/files/ja/web/api/vreyeparameters/renderwidth/index.html b/files/ja/web/api/vreyeparameters/renderwidth/index.html deleted file mode 100644 index a6b6e065c2499d..00000000000000 --- a/files/ja/web/api/vreyeparameters/renderwidth/index.html +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: VREyeParameters.renderWidth -slug: Web/API/VREyeParameters/renderWidth -translation_of: Web/API/VREyeParameters/renderWidth ---- -

{{APIRef("WebVR API")}}{{SeeCompatTable}}

- -

{{domxref("VREyeParameters")}} インターフェイスの renderWidth 読取専用プロパティは,各眼のビューポートの推奨レンダーターゲット幅をピクセル値で表します.

- -

シンタックス

- -
var curRenderWidth = myVRDisplay.getEyeParameters('left').renderWidth;
- -

- -

幅を表す数値.ピクセル単位.

- -

- -
TBD.
- -

仕様

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('WebVR', '#dom-vreyeparameters-renderwidth', 'renderWidth')}}{{Spec2('WebVR')}}Initial definition
- -

ブラウザの互換性

- -

{{Compat("api.VREyeParameters.renderWidth")}}

- -

参照

- - diff --git a/files/ja/web/api/vreyeparameters/renderwidth/index.md b/files/ja/web/api/vreyeparameters/renderwidth/index.md new file mode 100644 index 00000000000000..59200929464642 --- /dev/null +++ b/files/ja/web/api/vreyeparameters/renderwidth/index.md @@ -0,0 +1,37 @@ +--- +title: VREyeParameters.renderWidth +slug: Web/API/VREyeParameters/renderWidth +translation_of: Web/API/VREyeParameters/renderWidth +--- +{{APIRef("WebVR API")}}{{SeeCompatTable}} + +{{domxref("VREyeParameters")}} インターフェイスの **`renderWidth`** 読取専用プロパティは,各眼のビューポートの推奨レンダーターゲット幅をピクセル値で表します. + +## シンタックス + +```js +var curRenderWidth = myVRDisplay.getEyeParameters('left').renderWidth; +``` + +### 値 + +幅を表す数値.ピクセル単位. + +## 例 + + TBD. + +## 仕様 + +| Specification | Status | Comment | +| ------------------------------------------------------------------------------------------------ | ------------------------ | ------------------ | +| {{SpecName('WebVR', '#dom-vreyeparameters-renderwidth', 'renderWidth')}} | {{Spec2('WebVR')}} | Initial definition | + +## ブラウザの互換性 + +{{Compat("api.VREyeParameters.renderWidth")}} + +## 参照 + +- [WebVR API homepage](/ja/docs/Web/API/WebVR_API). +- [MozVr.com](http://mozvr.com/) — Mozilla VR チームのデモ,ダウンロード,その他のリソース. diff --git a/files/ja/web/api/vrfieldofview/index.html b/files/ja/web/api/vrfieldofview/index.html deleted file mode 100644 index 9284c38d3ed185..00000000000000 --- a/files/ja/web/api/vrfieldofview/index.html +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: VRFieldOfView -slug: Web/API/VRFieldOfView -translation_of: Web/API/VRFieldOfView ---- -

{{APIRef("WebVR API")}}{{SeeCompatTable}}

- -

WebVR APIVRFieldOfView インターフェイスは,中心点からの視野を示す4つの角度で定義される視界を表現します.

- -

プロパティ

- -
-
{{domxref("VRFieldOfView.upDegrees")}} {{readonlyInline}}
-
視界の上方向への拡張量を示す角度.
-
{{domxref("VRFieldOfView.rightDegrees")}} {{readonlyInline}}
-
視界の右方向への拡張量を示す角度.
-
{{domxref("VRFieldOfView.downDegrees")}} {{readonlyInline}}
-
視界の下方向への拡張量を示す角度.
-
{{domxref("VRFieldOfView.leftDegrees")}} {{readonlyInline}}
-
視界の左方向への拡張量を示す角度.
-
- -

- -
TBD.
- -

仕様

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('WebVR', '#interface-interface-vrfieldofview', 'VRFieldOfView')}}{{Spec2('WebVR')}}Initial definition
- -

ブラウザの互換性

- -

{{Compat("api.VRFieldOfView")}}

- -

参照

- - diff --git a/files/ja/web/api/vrfieldofview/index.md b/files/ja/web/api/vrfieldofview/index.md new file mode 100644 index 00000000000000..7b70448c9d873f --- /dev/null +++ b/files/ja/web/api/vrfieldofview/index.md @@ -0,0 +1,38 @@ +--- +title: VRFieldOfView +slug: Web/API/VRFieldOfView +translation_of: Web/API/VRFieldOfView +--- +{{APIRef("WebVR API")}}{{SeeCompatTable}} + +[WebVR API](/ja/docs/Web/API/WebVR_API) の **`VRFieldOfView`** インターフェイスは,中心点からの視野を示す 4 つの角度で定義される視界を表現します. + +## プロパティ + +- {{domxref("VRFieldOfView.upDegrees")}} {{readonlyInline}} + - : 視界の上方向への拡張量を示す角度. +- {{domxref("VRFieldOfView.rightDegrees")}} {{readonlyInline}} + - : 視界の右方向への拡張量を示す角度. +- {{domxref("VRFieldOfView.downDegrees")}} {{readonlyInline}} + - : 視界の下方向への拡張量を示す角度. +- {{domxref("VRFieldOfView.leftDegrees")}} {{readonlyInline}} + - : 視界の左方向への拡張量を示す角度. + +## 例 + + TBD. + +## 仕様 + +| Specification | Status | Comment | +| ---------------------------------------------------------------------------------------------------- | ------------------------ | ------------------ | +| {{SpecName('WebVR', '#interface-interface-vrfieldofview', 'VRFieldOfView')}} | {{Spec2('WebVR')}} | Initial definition | + +## ブラウザの互換性 + +{{Compat("api.VRFieldOfView")}} + +## 参照 + +- [WebVR API homepage](/ja/docs/Web/API/WebVR_API). +- [MozVr.com](http://mozvr.com/) — Mozilla VR チームのデモ,ダウンロード,その他のリソース. diff --git a/files/ja/web/api/vrpose/index.html b/files/ja/web/api/vrpose/index.html deleted file mode 100644 index 8e71330af55c9d..00000000000000 --- a/files/ja/web/api/vrpose/index.html +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: VRPose -slug: Web/API/VRPose -translation_of: Web/API/VRPose ---- -
{{APIRef("WebVR API")}}{{SeeCompatTable}}
- -

WebVR APIVRPose インターフェイスは,特定のタイムスタンプにおけるVRセンサーの状態(向き,位置,速度,加速度の情報を含みます)を示します.

- -

このインターフェイスには,{{domxref("VRDisplay.getPose()")}} と {{domxref("VRDisplay.getImmediatePose()")}} メソッドを通じてアクセスします.

- -

プロパティ

- -
-
{{domxref("VRPose.timeStamp")}} {{readonlyInline}}
-
システムの現在のタイムスタンプを返します — これは単調増加する値で,位置データが更新されたか,どんな順番で更新が発生しているかを決めるのに使えます.
-
{{domxref("VRPose.position")}} {{readonlyInline}}
-
現在の {{domxref("VRPose.timestamp")}} における {{domxref("VRDisplay")}} の位置を3Dベクトルとして返します.
-
{{domxref("VRPose.linearVelocity")}} {{readonlyInline}}
-
現在の {{domxref("VRPose.timestamp")}} における {{domxref("VRDisplay")}} の(線形の)速度を返します.単位はメートル/秒です.
-
{{domxref("VRPose.linearAcceleration")}} {{readonlyInline}}
-
現在の {{domxref("VRPose.timestamp")}} における {{domxref("VRDisplay")}} の(線形の)加速度を返します.単位はメートル/秒/秒です.
-
{{domxref("VRPose.orientation")}} {{readonlyInline}}
-
現在の {{domxref("VRPose.timestamp")}} におけるセンサーの向きをクォータニオンとして返します.
-
{{domxref("VRPose.angularVelocity")}} {{readonlyInline}}
-
現在の {{domxref("VRPose.timestamp")}} における {{domxref("VRDisplay")}} の角速度を返します.単位はラジアン/秒です.
-
{{domxref("VRPose.angularAcceleration")}} {{readonlyInline}}
-
現在の {{domxref("VRPose.timestamp")}} における {{domxref("VRDisplay")}} の角加速度を返します.単位はラジアン/秒/秒です.
-
- -

- -
TBD.
- -

仕様

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('WebVR', '#interface-vrpose', 'VRPose')}}{{Spec2('WebVR')}}Initial definition
- -

ブラウザの互換性

- -

{{Compat("api.VRPose")}}

- -

参照

- - diff --git a/files/ja/web/api/vrpose/index.md b/files/ja/web/api/vrpose/index.md new file mode 100644 index 00000000000000..3251201a922fac --- /dev/null +++ b/files/ja/web/api/vrpose/index.md @@ -0,0 +1,46 @@ +--- +title: VRPose +slug: Web/API/VRPose +translation_of: Web/API/VRPose +--- +{{APIRef("WebVR API")}}{{SeeCompatTable}} + +[WebVR API](/ja/docs/Web/API/WebVR_API) の **`VRPose`** インターフェイスは,特定のタイムスタンプにおける VR センサーの状態(向き,位置,速度,加速度の情報を含みます)を示します. + +このインターフェイスには,{{domxref("VRDisplay.getPose()")}} と {{domxref("VRDisplay.getImmediatePose()")}} メソッドを通じてアクセスします. + +## プロパティ + +- {{domxref("VRPose.timeStamp")}} {{readonlyInline}} + - : システムの現在のタイムスタンプを返します — これは単調増加する値で,位置データが更新されたか,どんな順番で更新が発生しているかを決めるのに使えます. +- {{domxref("VRPose.position")}} {{readonlyInline}} + - : 現在の {{domxref("VRPose.timestamp")}} における {{domxref("VRDisplay")}} の位置を 3D ベクトルとして返します. +- {{domxref("VRPose.linearVelocity")}} {{readonlyInline}} + - : 現在の {{domxref("VRPose.timestamp")}} における {{domxref("VRDisplay")}} の(線形の)速度を返します.単位はメートル/秒です. +- {{domxref("VRPose.linearAcceleration")}} {{readonlyInline}} + - : 現在の {{domxref("VRPose.timestamp")}} における {{domxref("VRDisplay")}} の(線形の)加速度を返します.単位はメートル/秒/秒です. +- {{domxref("VRPose.orientation")}} {{readonlyInline}} + - : 現在の {{domxref("VRPose.timestamp")}} におけるセンサーの向きをクォータニオンとして返します. +- {{domxref("VRPose.angularVelocity")}} {{readonlyInline}} + - : 現在の {{domxref("VRPose.timestamp")}} における {{domxref("VRDisplay")}} の角速度を返します.単位はラジアン/秒です. +- {{domxref("VRPose.angularAcceleration")}} {{readonlyInline}} + - : 現在の {{domxref("VRPose.timestamp")}} における {{domxref("VRDisplay")}} の角加速度を返します.単位はラジアン/秒/秒です. + +## 例 + + TBD. + +## 仕様 + +| Specification | Status | Comment | +| -------------------------------------------------------------------- | ------------------------ | ------------------ | +| {{SpecName('WebVR', '#interface-vrpose', 'VRPose')}} | {{Spec2('WebVR')}} | Initial definition | + +## ブラウザの互換性 + +{{Compat("api.VRPose")}} + +## 参照 + +- [WebVR API homepage](/ja/docs/Web/API/WebVR_API). +- [MozVr.com](http://mozvr.com/) — Mozilla VR チームのデモ,ダウンロード,その他のリソース. diff --git a/files/ja/web/api/vrstageparameters/index.html b/files/ja/web/api/vrstageparameters/index.html deleted file mode 100644 index 0fe7c615e784b9..00000000000000 --- a/files/ja/web/api/vrstageparameters/index.html +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: VRStageParameters -slug: Web/API/VRStageParameters -translation_of: Web/API/VRStageParameters ---- -
{{APIRef("WebVR API")}}{{SeeCompatTable}}
- -

WebVR APIVRStageParameters インターフェイスは,ルームスケール体験に対応しているデバイス用にステージエリアを記述する値を表現しています.

- -

このインターフェイスには {{domxref("VRDisplay.stageParameters")}} プロパティを通じてアクセスできます.

- -

プロパティ

- -
-
{{domxref("VRStageParameters.sittingToStandingTransform")}} {{readonlyInline}}
-
{{domxref("VRDisplay.getPose()")}}/{{domxref("VRDisplay.getImmediatePose()")}} で返される着席(sitting-space)位置を立位(standing-space)位置にするための変換行列を含んでいます.
-
{{domxref("VRStageParameters.sizeX")}} {{readonlyInline}}
-
プレイエリア境界の幅を返します.単位はメートルです.
-
{{domxref("VRStageParameters.sizeY")}} {{readonlyInline}}
-
プレイエリア境界の奥行きを返します.単位はメートルです.
-
- -

- -
TBD.
- -

仕様

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('WebVR', '#interface-vrstageparameters', 'VRStageParameters')}}{{Spec2('WebVR')}}Initial definition
- -

ブラウザの互換性

- -

{{Compat("api.VRStageParameters")}}

- -

参照

- - diff --git a/files/ja/web/api/vrstageparameters/index.md b/files/ja/web/api/vrstageparameters/index.md new file mode 100644 index 00000000000000..5283ee94fdff39 --- /dev/null +++ b/files/ja/web/api/vrstageparameters/index.md @@ -0,0 +1,38 @@ +--- +title: VRStageParameters +slug: Web/API/VRStageParameters +translation_of: Web/API/VRStageParameters +--- +{{APIRef("WebVR API")}}{{SeeCompatTable}} + +[WebVR API](/ja/docs/Web/API/WebVR_API) の **`VRStageParameters`** インターフェイスは,ルームスケール体験に対応しているデバイス用にステージエリアを記述する値を表現しています. + +このインターフェイスには {{domxref("VRDisplay.stageParameters")}} プロパティを通じてアクセスできます. + +## プロパティ + +- {{domxref("VRStageParameters.sittingToStandingTransform")}} {{readonlyInline}} + - : {{domxref("VRDisplay.getPose()")}}/{{domxref("VRDisplay.getImmediatePose()")}} で返される着席(sitting-space)位置を立位(standing-space)位置にするための変換行列を含んでいます. +- {{domxref("VRStageParameters.sizeX")}} {{readonlyInline}} + - : _プレイエリア境界の幅を返します.単位はメートルです._ +- {{domxref("VRStageParameters.sizeY")}} {{readonlyInline}} + - : _プレイエリア境界の奥行きを返します.単位はメートルです._ + +## 例 + + TBD. + +## 仕様 + +| Specification | Status | Comment | +| ---------------------------------------------------------------------------------------------------- | ------------------------ | ------------------ | +| {{SpecName('WebVR', '#interface-vrstageparameters', 'VRStageParameters')}} | {{Spec2('WebVR')}} | Initial definition | + +## ブラウザの互換性 + +{{Compat("api.VRStageParameters")}} + +## 参照 + +- [WebVR API homepage](/ja/docs/Web/API/WebVR_API). +- [MozVr.com](http://mozvr.com/) — Mozilla VR チームのデモ,ダウンロード,その他のリソース. diff --git a/files/ja/web/api/vrstageparameters/sittingtostandingtransform/index.html b/files/ja/web/api/vrstageparameters/sittingtostandingtransform/index.html deleted file mode 100644 index 0fb3dc5e4565c6..00000000000000 --- a/files/ja/web/api/vrstageparameters/sittingtostandingtransform/index.html +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: VRStageParameters.sittingToStandingTransform -slug: Web/API/VRStageParameters/sittingToStandingTransform -translation_of: Web/API/VRStageParameters/sittingToStandingTransform ---- -
{{APIRef("WebVR API")}}{{SeeCompatTable}}
- -

{{domxref("VRStageParameters")}} インターフェイスの sittingToStandingTransform 読取専用プロパティは,{{domxref("VRDisplay.getPose()")}}/{{domxref("VRDisplay.getImmediatePose()")}} iで取得した「立った状態の位置」から「座った状態の位置」へと変換する行列を持っています.

- -

シンタックス

- -
var myTransform = vrStageParametersInstance.sittingToStandingTransform;
- -

- -

4x4の変換行列を成分として持つ16要素の {{domxref("Float32Array")}} です.

- -

- -
TBD.
- -

仕様

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('WebVR', '#dom-vrstageparameters-sittingtostandingtransform', 'sittingToStandingTransform')}}{{Spec2('WebVR')}}Initial definition
- -

ブラウザの互換性

- -

{{Compat("api.VRStageParameters.sittingToStandingTransform")}}

- -

参照

- - diff --git a/files/ja/web/api/vrstageparameters/sittingtostandingtransform/index.md b/files/ja/web/api/vrstageparameters/sittingtostandingtransform/index.md new file mode 100644 index 00000000000000..2b985d5c51380d --- /dev/null +++ b/files/ja/web/api/vrstageparameters/sittingtostandingtransform/index.md @@ -0,0 +1,37 @@ +--- +title: VRStageParameters.sittingToStandingTransform +slug: Web/API/VRStageParameters/sittingToStandingTransform +translation_of: Web/API/VRStageParameters/sittingToStandingTransform +--- +{{APIRef("WebVR API")}}{{SeeCompatTable}} + +{{domxref("VRStageParameters")}} インターフェイスの **`sittingToStandingTransform`** 読取専用プロパティは,{{domxref("VRDisplay.getPose()")}}/{{domxref("VRDisplay.getImmediatePose()")}} i で取得した「立った状態の位置」から「座った状態の位置」へと変換する行列を持っています. + +## シンタックス + +```js +var myTransform = vrStageParametersInstance.sittingToStandingTransform; +``` + +### 値 + +4x4 の変換行列を成分として持つ 16 要素の {{domxref("Float32Array")}} です. + +## 例 + + TBD. + +## 仕様 + +| Specification | Status | Comment | +| -------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ | ------------------ | +| {{SpecName('WebVR', '#dom-vrstageparameters-sittingtostandingtransform', 'sittingToStandingTransform')}} | {{Spec2('WebVR')}} | Initial definition | + +## ブラウザの互換性 + +{{Compat("api.VRStageParameters.sittingToStandingTransform")}} + +## 参照 + +- [WebVR API homepage](/ja/docs/Web/API/WebVR_API). +- [MozVr.com](http://mozvr.com/) — Mozilla VR チームのデモ,ダウンロード,その他のリソース. diff --git a/files/ja/web/api/vrstageparameters/sizex/index.html b/files/ja/web/api/vrstageparameters/sizex/index.html deleted file mode 100644 index 2bae7a7f7e3abc..00000000000000 --- a/files/ja/web/api/vrstageparameters/sizex/index.html +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: VRStageParameters.sizeX -slug: Web/API/VRStageParameters/sizeX -translation_of: Web/API/VRStageParameters/sizeX ---- -
{{APIRef("WebVR API")}}{{SeeCompatTable}}
- -

{{domxref("VRStageParameters")}} インターフェイスの sizeX 読取専用プロパティは,プレイエリア境界の幅をメートル単位で返します.

- -

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

- -

シンタックス

- -
var mySizeX = vrStageParametersInstance.sizeX;
- -

- -

floatで表現された幅(メートル単位).

- -

- -
TBD.
- -

仕様

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('WebVR', '#dom-vrstageparameters-sizex', 'sizeX')}}{{Spec2('WebVR')}}Initial definition
- -

互換性

- -

{{Compat("api.VRStageParameters.sizeX")}}

- -

参照

- - diff --git a/files/ja/web/api/vrstageparameters/sizex/index.md b/files/ja/web/api/vrstageparameters/sizex/index.md new file mode 100644 index 00000000000000..3d8e919658672f --- /dev/null +++ b/files/ja/web/api/vrstageparameters/sizex/index.md @@ -0,0 +1,39 @@ +--- +title: VRStageParameters.sizeX +slug: Web/API/VRStageParameters/sizeX +translation_of: Web/API/VRStageParameters/sizeX +--- +{{APIRef("WebVR API")}}{{SeeCompatTable}} + +{{domxref("VRStageParameters")}} インターフェイスの **`sizeX`** 読取専用プロパティは,プレイエリア境界の幅をメートル単位で返します. + +境界は,安全性を目的として,床の平面上に軸に沿った矩形として定義されています.コンテンツは,この境界を超えてユーザが動いてしまうような動作をすべてきではありません; しかし,ユーザは境界を無視して動くこと自体は可能で,ユーザ位置がこの矩形境界の外側になることもあります.矩形の中心は,立位空間座標における (0,0,0) です. + +## シンタックス + +```js +var mySizeX = vrStageParametersInstance.sizeX; +``` + +### 値 + +float で表現された幅(メートル単位). + +## 例 + + TBD. + +## 仕様 + +| Specification | Status | Comment | +| ------------------------------------------------------------------------------------ | ------------------------ | ------------------ | +| {{SpecName('WebVR', '#dom-vrstageparameters-sizex', 'sizeX')}} | {{Spec2('WebVR')}} | Initial definition | + +## 互換性 + +{{Compat("api.VRStageParameters.sizeX")}} + +## 参照 + +- [WebVR API homepage](/ja/docs/Web/API/WebVR_API). +- [MozVr.com](http://mozvr.com/) — Mozilla VR チームのデモ,ダウンロード,その他のリソース. diff --git a/files/ja/web/api/vrstageparameters/sizey/index.html b/files/ja/web/api/vrstageparameters/sizey/index.html deleted file mode 100644 index 5bfe838717d7e0..00000000000000 --- a/files/ja/web/api/vrstageparameters/sizey/index.html +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: VRStageParameters.sizeY -slug: Web/API/VRStageParameters/sizeY -translation_of: Web/API/VRStageParameters/sizeY ---- -
{{APIRef("WebVR API")}}{{SeeCompatTable}}
- -

{{domxref("VRStageParameters")}} インターフェイスの sizeY 読取専用プロパティはプレイエリア境界の奥行きをメートル単位で返します.

- -

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

- -

シンタックス

- -
var mySizeY = vrStageParametersInstance.sizeY;
- -

- -

floatで表現された奥行き(メートル単位).

- -

- -
TBD.
- -

仕様

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('WebVR', '#dom-vrstageparameters-sizey', 'sizeY')}}{{Spec2('WebVR')}}Initial definition
- -

ブラウザの互換性

- -

{{Compat("api.VRStageParameters.sizeY")}}

- -

参照

- - diff --git a/files/ja/web/api/vrstageparameters/sizey/index.md b/files/ja/web/api/vrstageparameters/sizey/index.md new file mode 100644 index 00000000000000..2e388e196d2a85 --- /dev/null +++ b/files/ja/web/api/vrstageparameters/sizey/index.md @@ -0,0 +1,39 @@ +--- +title: VRStageParameters.sizeY +slug: Web/API/VRStageParameters/sizeY +translation_of: Web/API/VRStageParameters/sizeY +--- +{{APIRef("WebVR API")}}{{SeeCompatTable}} + +{{domxref("VRStageParameters")}} インターフェイスの **`sizeY`** 読取専用プロパティはプレイエリア境界の奥行きをメートル単位で返します. + +境界は,安全性を目的として,床の平面上に軸に沿った矩形として定義されています.コンテンツは,この境界を超えてユーザが動いてしまうような動作をすべてきではありません; しかし,ユーザは境界を無視して動くこと自体は可能で,ユーザ位置がこの矩形境界の外側になることもあります.矩形の中心は,立位空間座標における (0,0,0) です. + +## シンタックス + +```js +var mySizeY = vrStageParametersInstance.sizeY; +``` + +### 値 + +float で表現された奥行き(メートル単位). + +## 例 + + TBD. + +## 仕様 + +| Specification | Status | Comment | +| ------------------------------------------------------------------------------------ | ------------------------ | ------------------ | +| {{SpecName('WebVR', '#dom-vrstageparameters-sizey', 'sizeY')}} | {{Spec2('WebVR')}} | Initial definition | + +## ブラウザの互換性 + +{{Compat("api.VRStageParameters.sizeY")}} + +## 参照 + +- [WebVR API homepage](/ja/docs/Web/API/WebVR_API). +- [MozVr.com](http://mozvr.com/) — Mozilla VR チームのデモ,ダウンロード,その他のリソース. diff --git a/files/ja/web/api/vttcue/vttcue/index.html b/files/ja/web/api/vttcue/vttcue/index.html deleted file mode 100644 index 64b07802ca5039..00000000000000 --- a/files/ja/web/api/vttcue/vttcue/index.html +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: VTTCue() -slug: Web/API/VTTCue/VTTCue -tags: - - API - - Constructor - - VTTCue - - WebVTT -translation_of: Web/API/VTTCue/VTTCue ---- -

{{APIRef("WebVTT")}}

- -

VTTCue() コンストラクタは新しい {{domxref("VTTCue")}} オブジェクトを返します。

- -

構文

- -
 vttCue = new VTTCue(startTime, endTime, text);
- -

パラメーター

- -
-
startTime
-
これは、キューを表示し始める動画の時間を表す double 型です。
-
endTime
-
これは、キューを表示しなくなる動画の時間を表す double 型です。
-
text
-
これは表示するテキストを表す {{domxref("DOMString")}} です。
-
- -

- -
// 2から3秒の間に表示するキューを作成し、指定されたテキストを使用します。
-var cue = new VTTCue(2, 3, 'かっこいい文章を表示する');
- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName("WebVTT", "#dom-vttcue-vttcue", "VTTCue()")}}{{Spec2("WebVTT")}}
- -

ブラウザーの互換性

- - - -

{{Compat("api.VTTCue.VTTCue")}}

diff --git a/files/ja/web/api/vttcue/vttcue/index.md b/files/ja/web/api/vttcue/vttcue/index.md new file mode 100644 index 00000000000000..09fa1b5ed7e383 --- /dev/null +++ b/files/ja/web/api/vttcue/vttcue/index.md @@ -0,0 +1,43 @@ +--- +title: VTTCue() +slug: Web/API/VTTCue/VTTCue +tags: + - API + - Constructor + - VTTCue + - WebVTT +translation_of: Web/API/VTTCue/VTTCue +--- +{{APIRef("WebVTT")}} + +**`VTTCue()`** コンストラクタは新しい {{domxref("VTTCue")}} オブジェクトを返します。 + +## 構文 + + vttCue = new VTTCue(startTime, endTime, text); + +### パラメーター + +- _startTime_ + - : これは、キューを表示し始める動画の時間を表す `double` 型です。 +- _endTime_ + - : これは、キューを表示しなくなる動画の時間を表す `double` 型です。 +- _text_ + - : これは表示するテキストを表す {{domxref("DOMString")}} です。 + +## 例 + +```js +// 2から3秒の間に表示するキューを作成し、指定されたテキストを使用します。 +var cue = new VTTCue(2, 3, 'かっこいい文章を表示する'); +``` + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------------------------------------------------------- | ------------------------ | -------- | +| {{SpecName("WebVTT", "#dom-vttcue-vttcue", "VTTCue()")}} | {{Spec2("WebVTT")}} | | + +## ブラウザーの互換性 + +{{Compat("api.VTTCue.VTTCue")}} diff --git a/files/ja/web/api/vttregion/index.html b/files/ja/web/api/vttregion/index.html deleted file mode 100644 index f43f82b1ce8aea..00000000000000 --- a/files/ja/web/api/vttregion/index.html +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: VTTRegion -slug: Web/API/VTTRegion -tags: - - API - - VTTRegion - - WebVTT -translation_of: Web/API/VTTRegion ---- -

{{APIRef("WebVTT")}}

- -

WebVTT(メディアプレゼンテーションに関するテキストトラック)を処理するための API の一部である VTTRegion インターフェイスは、{{domxref("VTTCue")}} をレンダリングするための動画の一部を記述します。

- -

コンストラクタ

- -
-
{{domxref("VTTRegion.VTTRegion", "VTTRegion()")}}
-
新しく作成された VTTRegion オブジェクトを返します。
-
- -

プロパティ

- -
-
{{domxref("VTTRegion.id")}}
-
領域を識別する {{domxref("DOMString")}}。
-
{{domxref("VTTRegion.width")}}
-
領域の幅を動画のパーセントとして表す double 型。
-
{{domxref("VTTRegion.lines")}}
-
領域の高さを行数で表す double 型。
-
{{domxref("VTTRegion.regionAnchorX")}}
-
領域アンカーの X オフセットを領域のパーセントとして表す double 型。
-
{{domxref("VTTRegion.regionAnchorY")}}
-
領域アンカーの Y オフセットを領域のパーセントとして表す double 型。
-
{{domxref("VTTRegion.viewportAnchorX")}}
-
ビューポートアンカーの X オフセットを動画のパーセントとして表す double 型。
-
{{domxref("VTTRegion.viewportAnchorY")}}
-
ビューポートアンカーの Y オフセットを動画のパーセントとして表す double 型。
-
{{domxref("VTTRegion.scroll")}}
-
新しいキューを追加すると既存のキューがどのように移動するかを表す列挙型。
-
- -

- -
var region = new VTTRegion();
-region.width = 50;  // 動画幅の50%を使用し、
-region.lines = 4;  // 高さは4行を使用します。
-region.viewportAnchorX = 25;  // 領域が左から25%で始まるようにします。
-var cue = new VTTCue(2, 3, 'かっこいい文章を表示する');
-cue.region = region;  // このキューはこの領域内にのみ描かれます。
- -

仕様

- - - - - - - - - - - - - - -
仕様状態コメント
{{SpecName("WebVTT")}}{{Spec2("WebVTT")}}
- -

ブラウザーの互換性

- - - -

{{Compat("api.VTTRegion")}}

diff --git a/files/ja/web/api/vttregion/index.md b/files/ja/web/api/vttregion/index.md new file mode 100644 index 00000000000000..3d8d92d0c09ef8 --- /dev/null +++ b/files/ja/web/api/vttregion/index.md @@ -0,0 +1,57 @@ +--- +title: VTTRegion +slug: Web/API/VTTRegion +tags: + - API + - VTTRegion + - WebVTT +translation_of: Web/API/VTTRegion +--- +{{APIRef("WebVTT")}} + +WebVTT(メディアプレゼンテーションに関するテキストトラック)を処理するための API の一部である `VTTRegion` インターフェイスは、{{domxref("VTTCue")}} をレンダリングするための動画の一部を記述します。 + +## コンストラクタ + +- {{domxref("VTTRegion.VTTRegion", "VTTRegion()")}} + - : 新しく作成された `VTTRegion` オブジェクトを返します。 + +## プロパティ + +- {{domxref("VTTRegion.id")}} + - : 領域を識別する {{domxref("DOMString")}}。 +- {{domxref("VTTRegion.width")}} + - : 領域の幅を動画のパーセントとして表す `double` 型。 +- {{domxref("VTTRegion.lines")}} + - : 領域の高さを行数で表す `double` 型。 +- {{domxref("VTTRegion.regionAnchorX")}} + - : 領域アンカーの X オフセットを領域のパーセントとして表す `double` 型。 +- {{domxref("VTTRegion.regionAnchorY")}} + - : 領域アンカーの Y オフセットを領域のパーセントとして表す `double` 型。 +- {{domxref("VTTRegion.viewportAnchorX")}} + - : ビューポートアンカーの X オフセットを動画のパーセントとして表す `double` 型。 +- {{domxref("VTTRegion.viewportAnchorY")}} + - : ビューポートアンカーの Y オフセットを動画のパーセントとして表す `double` 型。 +- {{domxref("VTTRegion.scroll")}} + - : 新しいキューを追加すると既存のキューがどのように移動するかを表す列挙型。 + +## 例 + +```js +var region = new VTTRegion(); +region.width = 50; // 動画幅の50%を使用し、 +region.lines = 4; // 高さは4行を使用します。 +region.viewportAnchorX = 25; // 領域が左から25%で始まるようにします。 +var cue = new VTTCue(2, 3, 'かっこいい文章を表示する'); +cue.region = region; // このキューはこの領域内にのみ描かれます。 +``` + +## 仕様 + +| 仕様 | 状態 | コメント | +| ---------------------------- | ------------------------ | -------- | +| {{SpecName("WebVTT")}} | {{Spec2("WebVTT")}} | | + +## ブラウザーの互換性 + +{{Compat("api.VTTRegion")}} diff --git a/files/ja/web/api/web_animations_api/index.html b/files/ja/web/api/web_animations_api/index.html deleted file mode 100644 index e8c07c62437938..00000000000000 --- a/files/ja/web/api/web_animations_api/index.html +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: ウェブアニメーション API -slug: Web/API/Web_Animations_API -tags: - - API - - Animation - - Landing - - Reference - - Web Animations - - アニメーション - - ウェブアニメーション -translation_of: Web/API/Web_Animations_API ---- -

{{DefaultAPISidebar("Web Animations")}}

- -

Web Animation API を使うことで 、ウェブページの見た目の変更を同期させたり時間を調整すること、つまり DOM 要素のアニメーションが可能です。これらはタイミングモデルおよびアニメーションモデルという2つのモデルの組み合わせによって実現されます。

- -

概念と利用方法

- -

Web Animation API は、 DOM 要素のアニメーションを記述する共通言語をブラウザーと開発者に提供します。 API の背景の概念や利用方法についての詳しい情報は、Web Animation API の利用をご覧ください。

- -

ウェブアニメーションインターフェイス

- -
-
{{domxref("Animation")}}
-
アニメーションノードやソースの再生制御やタイムラインを提供します。 {{domxref("KeyframeEffect.KeyframeEffect", "KeyframeEffect()")}} コンストラクターで作成されたオブジェクトを取ることができます。
-
{{domxref("KeyframeEffect")}}
-
キーフレームと呼ばれるアニメーション可能なプロパティと値の組み合わせ、及びそのタイミングオプションを記述します。これは {{domxref("Animation.Animation", "Animation()")}} コンストラクターを使用して再生することができます。
-
{{domxref("AnimationTimeline")}}
-
アニメーションのタイムラインを表します。このインターフェイスはタイムライン機能 ({{domxref("DocumentTimeline")}} などのタイムラインオブジェクト) を定義するために存在し、これ自体は開発者からはアクセスされません。
-
{{domxref("AnimationEvent")}}
-
実際には CSS アニメーションの一部です。
-
{{domxref("DocumentTimeline")}}
-
アニメーションのタイムラインを表し、既定の文書のタイムライン ({{domxref("Document.timeline")}} プロパティ) を含みます。
-
{{domxref("EffectTiming")}}
-
{{domxref("Element.animate()")}}, {{domxref("KeyframeEffectReadOnly.KeyframeEffectReadOnly()")}}, {{domxref("KeyframeEffect.KeyframeEffect()")}} のすべてがタイミングプロパティの任意の連想配列オブジェクトを受け付けます。
-
- -

他のインターフェイスへの拡張

- -

Web Animation API によって {{domxref("document")}} 及び {{domxref("element")}} に新たに追加された機能もあります。

- -

Document インターフェイスの拡張

- -
-
{{domxref("document.timeline")}}
-
既定の文書タイムラインを表す DocumentTimeline オブジェクトです。
-
{{domxref("document.getAnimations()")}}
-
document 内で要素に対して現在有効な {{domxref("Animation")}} オブジェクトの配列を返します。
-
-

Element インターフェイスの拡張

-
-
{{domxref("Element.animate()")}}
-
要素のアニメーションを作成して再生するショートカットメソッドです。作成された {{domxref("Animation")}} オブジェクトのインスタンスを返します。
-
{{domxref("Element.getAnimations()")}}
-
{{domxref("Animation")}} オブジェクトの配列で、現在その要素に関連し、将来の実行が予定されているものを返します。
-
- -

仕様書

- - - - - - - - - - - - - - -
仕様書策定状況コメント
{{SpecName('Web Animations')}}{{Spec2('Web Animations')}}初回定義
- -

関連情報

- - diff --git a/files/ja/web/api/web_animations_api/index.md b/files/ja/web/api/web_animations_api/index.md new file mode 100644 index 00000000000000..878056fbf8a9d9 --- /dev/null +++ b/files/ja/web/api/web_animations_api/index.md @@ -0,0 +1,68 @@ +--- +title: ウェブアニメーション API +slug: Web/API/Web_Animations_API +tags: + - API + - Animation + - Landing + - Reference + - Web Animations + - アニメーション + - ウェブアニメーション +translation_of: Web/API/Web_Animations_API +--- +{{DefaultAPISidebar("Web Animations")}} + +Web Animation API を使うことで 、ウェブページの見た目の変更を同期させたり時間を調整すること、つまり DOM 要素のアニメーションが可能です。これらはタイミングモデルおよびアニメーションモデルという 2 つのモデルの組み合わせによって実現されます。 + +## 概念と利用方法 + +Web Animation API は、 DOM 要素のアニメーションを記述する共通言語をブラウザーと開発者に提供します。 API の背景の概念や利用方法についての詳しい情報は、[Web Animation API の利用](/ja/docs/Web/API/Web_Animations_API/Using_the_Web_Animations_API)をご覧ください。 + +## ウェブアニメーションインターフェイス + +- {{domxref("Animation")}} + - : アニメーションノードやソースの再生制御やタイムラインを提供します。 {{domxref("KeyframeEffect.KeyframeEffect", "KeyframeEffect()")}} コンストラクターで作成されたオブジェクトを取ることができます。 +- {{domxref("KeyframeEffect")}} + - : **キーフレーム**と呼ばれるアニメーション可能なプロパティと値の組み合わせ、及びその[タイミングオプション](/ja/docs/Web/API/Web_Animations_API/Animation_timing_options)を記述します。これは {{domxref("Animation.Animation", "Animation()")}} コンストラクターを使用して再生することができます。 +- {{domxref("AnimationTimeline")}} + - : アニメーションのタイムラインを表します。このインターフェイスはタイムライン機能 ({{domxref("DocumentTimeline")}} などのタイムラインオブジェクト) を定義するために存在し、これ自体は開発者からはアクセスされません。 +- {{domxref("AnimationEvent")}} + - : 実際には CSS アニメーションの一部です。 +- {{domxref("DocumentTimeline")}} + - : アニメーションのタイムラインを表し、既定の文書のタイムライン ({{domxref("Document.timeline")}} プロパティ) を含みます。 +- {{domxref("EffectTiming")}} + - : {{domxref("Element.animate()")}}, {{domxref("KeyframeEffectReadOnly.KeyframeEffectReadOnly()")}}, {{domxref("KeyframeEffect.KeyframeEffect()")}} のすべてがタイミングプロパティの任意の連想配列オブジェクトを受け付けます。 + +## 他のインターフェイスへの拡張 + +Web Animation API によって {{domxref("document")}} 及び {{domxref("element")}} に新たに追加された機能もあります。 + +### `Document` インターフェイスの拡張 + +- {{domxref("document.timeline")}} + - : 既定の文書タイムラインを表す `DocumentTimeline` オブジェクトです。 +- {{domxref("document.getAnimations()")}} + - : `document` 内で要素に対して現在有効な {{domxref("Animation")}} オブジェクトの配列を返します。 +- ### `Element` インターフェイスの拡張 + + {{domxref("Element.animate()")}} + + - : 要素のアニメーションを作成して再生するショートカットメソッドです。作成された {{domxref("Animation")}} オブジェクトのインスタンスを返します。 + +- {{domxref("Element.getAnimations()")}} + - : {{domxref("Animation")}} オブジェクトの配列で、現在その要素に関連し、将来の実行が予定されているものを返します。 + +## 仕様書 + +| 仕様書 | 策定状況 | コメント | +| ---------------------------------------- | ------------------------------------ | -------- | +| {{SpecName('Web Animations')}} | {{Spec2('Web Animations')}} | 初回定義 | + +## 関連情報 + +- [Web Animation API の利用](/ja/docs/Web/API/Web_Animations_API/Using_the_Web_Animations_API) +- [Web Animation のデモ](https://mozdevs.github.io/Animation-examples/) +- [Polyfill](https://github.com/web-animations/web-animations-js) +- Firefox の現在の実装: [AreWeAnimatedYet](https://birtles.github.io/areweanimatedyet/) +- [ブラウザーの対応のテスト](http://codepen.io/danwilson/pen/xGBKVq) diff --git a/files/ja/web/api/web_audio_api/basic_concepts_behind_web_audio_api/index.html b/files/ja/web/api/web_audio_api/basic_concepts_behind_web_audio_api/index.html deleted file mode 100644 index 6ab95c9ef68c57..00000000000000 --- a/files/ja/web/api/web_audio_api/basic_concepts_behind_web_audio_api/index.html +++ /dev/null @@ -1,361 +0,0 @@ ---- -title: Basic concepts behind Web Audio API -slug: Web/API/Web_Audio_API/Basic_concepts_behind_Web_Audio_API -tags: - - Audio - - Beginner - - Guide - - Introduction - - Media - - Web Audio - - Web Audio API - - concepts - - sound - - 初心者 -translation_of: Web/API/Web_Audio_API/Basic_concepts_behind_Web_Audio_API ---- -
-

この記事では、アプリを経由した音声伝達方法の設計をする際に、十分な情報に基づいた決断をする助けとなるよう、 Web Audio API の特徴がいかに働いているか、その背後にある音声理論について説明します。この記事はあなたを熟練のサウンドエンジニアにさせることはできないものの、Web Audio API が動く理由を理解するための十分な背景を提供します。

-
- -

オーディオグラフ

- -

Web Audio API は、オーディオコンテキスト内部でのオーディオオペレーションに対するハンドリングを含み、モジュラールーティングを可能とするためにデザインされてきました。基本となる音声操作を成す要素は、オーディオルーチングラフを形作るために、互いに接続されるオーディオノードによります。様々なタイプのチャンネルレイアウトと共に、いくつかの音声源もまた、単一のコンテキスト内部にて支持されています。このモジュラーデザインは、複雑なオーディオ機能を、ダイナミックな音響効果と共に創造するために必要な柔軟性を与えています。

- -

オーディオノードは、それら入出力を経由し接続され、単一あるいは複数の音声源から開始される一連のチェーンを作り、一つ以上のノードを経由しつつ、最終的な行き先に届き終了します。ただし、たとえば、音声データを視覚化することのみを求める場合などは、このような目的地は省いて構いません。シンプルで典型的な Web Audio ワークフローでは、以下のようになります:

- -
    -
  1. オーディオコンテキストの作成。
  2. -
  3. {{HTMLElement("audio")}} タグ、オシレーター、ストリーム等といった、該当コンテキスト内での音声源の作成。
  4. -
  5. リバーブ、バイカッドフィルター、パンナーコンプレッサーといった、音響効果用ノードの作成。
  6. -
  7. 例えばあなたのシステムのスピーカーなど、音声の最終的な行き先の選択。
  8. -
  9. 音声効果を(あるのならば)かけた後、最後に選択した行き先へ届いて終了する、音声源からの接続の確立。
  10. -
- -
チャンネルの記法 - -

信号上で利用できるオーディオチャンネルの数字は、2.0 や 5.1 のように、しばしば、数値の形式で表現されます。これは{{interwiki("wikipedia", "Surround_sound#Channel_notation", "channel notation")}}と呼ばれます。最初の数値は、該当の信号が含んでいるオーディオチャンネルの数です。ピリオドの後にある数値は、低音増強用出力として確保されているチャンネルの数を示しています。それらはしばしばサブウーファーとも称されます。

-
- -

A simple box diagram with an outer box labeled Audio context, and three inner boxes labeled Sources, Effects and Destination. The three inner boxes have arrow between them pointing from left to right, indicating the flow of audio information.

- -

各入出力は、互いに特定のオーディオレイアウトを代表する、一つ以上のオーディオチャンネルにより構成されます。個別のチャンネル構造それぞれは、モノラル、ステレオ、クアッド、5.1等を含んでサポートされています。

- -

Show the ability of AudioNodes to connect via their inputs and outputs and the channels inside these inputs/outputs.

- -

音声源はいくつかの方法で取得できます:

- - - -

オーディオデータ: サンプルとは?

- -

オーディオシグナルのプロセス中では、サンプリングとは連続的な信号離散的な信号へ変換することを意味します。あるいは別の言い方をすると、バンドのライブ演奏のような連続的な音波を、コンピューターがその音声を区別されたブロックで処理できるようになる(離散時間信号の)一連のサンプルに変換します。

- -

より詳しい情報は、Wikipedia の Sampling(Signal processing)から見ることができます。

- -

オーディオバッファー: フレーム、サンプル、チャンネルセクション

- -

{{ domxref("AudioBuffer") }}は、チャンネルの数(モノラルの場合は 1,ステレオの場合は 2、等)、バッファー長すなわちバッファーに格納されているサンプルフレーム数、サンプルレートすなわち 1秒間に再生されるサンプルフレーム数を、そのパラメーターとして持っています。

- -

例として、float32型の値1 つは、(ステレオの場合は左側あるいは右側といった)特定のチャンネルにおいて、各特定時点おけるオーディオストリームの値を表しています。フレームまたはサンプルフレームは、一定時点における、音声を再生する全チャンネル分の値すべてのまとまりです。全チャンネルの全サンプルが一緒に再生されます(ステレオならば 2 チャンネル分、5.1 ならば 6 チャンネル分、等)。

- -

サンプルレートとは、1秒間に再生される、それらサンプルの数(または、1 フレームのサンプルすべてが同時に再生させることから、フレーム)であり、単位は Hz で測定されます。サンプルレートが高まるにつれ、音質は向上します。

- -

モノラルとステレオのオーディオバッファーを見てみましょう。それらは 1秒間、44100Hz で再生されます。

- - - -

A diagram showing several frames in an audio buffer in a long line, each one containing two samples, as the buffer has two channels, it is stereo.

- -

バッファが再生されると、最も左のサンプルフレームが聞こえ、次にそのサンプルフレームのすぐ隣のサンプルフレームが続いてゆきます。ステレオの場合、両方のチャンネルから同時に聴こえます。サンプルフレームは、チャンネルの数とは独立しているため非常に便利であり、正確に音声を取り扱う有効な手段として、時間を表現してくれます。

- -
-

注: フレーム数から秒数を得るためには、フレーム数をサンプルレートで単に除算するだけです。サンプル数からフレーム数を得るためには、チャンネル数で単に除算するだけです。

-
- -

以下はいくつかの単純なサンプルです:

- -
var context = new AudioContext();
-var buffer = context.createBuffer(2, 22050, 44100);
- -
-

注: デジタルオーディオにおいて、44100Hz(44.1kHz とも表記される)は一般的なサンプリング周波数です。なぜ 44.1kHz なのでしょう?
-
- 第一に、人間の耳の可聴範囲は、大雑把に 20 から 20000Hz の範囲です。Nyquist-Shannon のサンプリング定理により、サンプリング周波数は再現したい最大周波数の 2倍以上でなくてはなりません。したがって、サンプリングレートは 40kHz以上でなくてはなりません。
-
- 第二に、シグナルはサンプリング前に、偽信号の発生をさせないため、ローパスフィルタリングされていなければなりません。理想的ローパスフィルターが 20kHz以下の周波数を(減衰させずに)完璧に通し、20kHz以上の周波数を完璧に遮断する一方で、実際には、周波数が部分的に減衰する場所となる、トランジションバンドが必要です。このバンドが広くなるにつれ、減衰フィルターを作るのは簡単かつ効率的になります。44.1kHz サンプリング周波数は、2.05kHz のトランジションバンドを与えます。

-
- -

この呼び出しをする場合、チャンネル数2 のステレオバッファーを取得し、AudioContext 上で(非常に一般的で、通常のサウンドカードではほとんどはレートとなる)44100Hz にて再生される音源が、0.5秒間続きます: 22050 フレーム/44100Hz = 0.5 秒。

- -
var context = new AudioContext();
-var buffer = context.createBuffer(1, 22050, 22050);
- -

この呼び出しをする場合、モノラルバッファーをチャンネル数1 で取得し、AudioContext 上で 44100Hz にて再生される際に自動で 44100Hz へ再サンプリングされ(したがって 44100 フレームとなり)、1秒間続きます: 44100 フレーム/44100Hz = 1 秒。

- -
-

: オーディオの再サンプリングは、画像のサイズ変更と非常に似たものです。例えば 16x16 の画像があり、32x32 のスペースを満たしたいとします。サイズ変更(あるいは再サンプリング)を行い、結果として(サイズ変更アルゴリズムの違いに依存して、ぼやけたりエッジができたりと)画質の低下を伴いますが、スペースを減らすサイズ変更済み画像が作れます。再サンプリングされたオーディオもまったく同じです。スペースを保てるものの、実際には高音域のコンテンツや高音を適切に再現することはできません。

-
- -

バッファーセクションの平面性対交差性

- -

Web AudioAPI は平面的なバッファー形式を採用しています。左右のチャンネルは、以下のように格納されています:

- -
LLLLLLLLLLLLLLLLRRRRRRRRRRRRRRRR (for a buffer of 16 frames)
- -

これは音声処理における一般的な形式です: これにより各チャンネルの独立した処理が簡単になります。

- -

代わりの方式としては、交差的な形式が用いられます:

- -
LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR (for a buffer of 16 frames)
- -

この形式は、大掛かりな処理を必要としない音声を、格納し再生する目的として一般的です。例えばデコード済み MP3音楽ストリームなどがあります。
-
- Web Audio API は、音声処理に適することを理由に、平面的なバッファーのみを採用しています。通常は平面的ですが、再生用に音声がサウンドカードへ送られる際は、交差的に変換されます。反対に、MP3音声がデコードされる場合、元々は交差形式だったものの、音声処理のため平面形式へと変換されます。

- -

オーディオチャンネル

- -

異なるオーディオバッファーでは、それぞれ異なった数のチャンネルを含んでいます: より基本的なモノラルとステレオ(それぞれチャンネル数1 と 2)から始まり、より複雑なクアッドもしくは 5.1 のような、異なるサウンドサンプルが各チャンネルに含まれ、よりリッチな音声体験を導くセットもあります。チャンネルは通常、以下のテーブルに示される、標準的な略語によって示されます:

- - - - - - - - - - - - - - - - - - - - -
Mono0: M: mono
Stereo0: L: left
- 1: R: right
Quad0: L: left
- 1: R: right
- 2: SL: surround left
- 3: SR: surround right
5.10: L: left
- 1: R: right
- 2: C: center
- 3: LFE: subwoofer
- 4: SL: surround left
- 5: SR: surround right
- -

アップミキシングとダウンミキシング

- -

入力と出力のチャンネル数が一致しない場合、以下のルールに基づいてアップミキシングまたはダウンミキシングが行われます。これは{{domxref("AudioNode.channelInterpretation")}} プロパティを speakers または discrete へとセットしてコントロールできます。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
説明入力チャンネル出力チャンネルミキシングルール
speakers1 (Mono)2 (Stereo)モノラルからステレオへのアップミックス。
- M入力チャンネルは(LR の)両出力チャンネル用に使われます。
- output.L = input.M
- output.R = input.M
1 (Mono)4 (Quad)モノラルからクアッドへのアップミックス。
- M 入力チャンネルは(LR の)ノンサラウンド出力チャンネル用に使われます。(SLSR の)サラウンド出力チャンネルは無音です。
- output.L = input.M
- output.R = input.M
- output.SL = 0
- output.SR = 0
1 (Mono)6 (5.1)モノラルから 5.1.へのアップミックス。
- M 入力チャンネルは(C の)ノン中央出力チャンネル用に使われます。その他すべての(L, R, LFE, SL, SR)出力チャンネルは無音です。
- output.L = 0
- output.R = 0

- output.C = input.M
- output.LFE = 0
- output.SL = 0
- output.SR = 0
2 (Stereo)1 (Mono)モノラルからステレオへのダウンミックス。
- (LR の)両入力チャンネルは等しく結合され、単一出力チャンネル(M)になります。
- output.M = 0.5 * (input.L + input.R)
2 (Stereo)4 (Quad)ステレオからクアッドへのアップミックス。
- 左右(LR)入力チャンネルはそれぞれ(LR の)ノンサラウンド出力チャンネル用に使われます。(SLSR の)サラウンド出力チャンネルは無音です。
- output.L = input.L
- output.R = input.R
- output.SL = 0
- output.SR = 0
2 (Stereo)6 (5.1)ステレオから 5.1.へのアップミックス。
- 左右(LR)入力チャンネルはそれぞれ(LR の)ノンサラウンド出力チャンネル用に使われます。(SLSR の)サラウンド出力チャンネル、中央チャンネル(C)、サブウーファー(LFE)はすべて同様に無音です。
- output.L = input.L
- output.R = input.R
- output.C = 0
- output.LFE = 0
- output.SL = 0
- output.SR = 0
4 (Quad)1 (Mono)クアッドからモノラルへのダウンミックス。
- (L, R, SL, SR)入力チャンネルは等しく結合され、単一出力チャンネル(M)になります。
- output.M = 0.25 * (input.L + input.R + input.SL + input.SR)
4 (Quad)2 (Stereo)クアッドからステレオへのダウンミックス。両左入力チャンネル
- (LSL)は等しく結合され、単一左出力チャンネル(L)になります。同様に、両右入力チャンネル(RSR)は等しく結合され、単一右出力チャンネル(R)になります。
- output.L = 0.5 * (input.L + input.SL)
- output.R = 0.5 * (input.R + input.SR)
4 (Quad)6 (5.1)クアッドから 5.1.へのアップミックス。
- (L, R, SL, SR)入力チャンネルはそれぞれ(LR の)出力チャンネル用に使われます。中央チャンネル(C)、サブウーファー(LFE)は無音です。
- output.L = input.L
- output.R = input.R
- output.C = 0
- output.LFE = 0
- output.SL = input.SL
- output.SR = input.SR
6 (5.1)1 (Mono)5.1.からモノラルへのダウンミックス。左チャンネル(L, SL)、右チャンネル(R, SR)、中央チャンネルはそれぞれ混合されます。サラウンドチャンネルは僅かに減衰され、標準側面チャンネルは利用のために、単一チャンネルを√2/2 で乗算したものとして出力が補強されます。サブウーファー(LFE)チャンネルは失われます。
- output.M = 0.7071 * (input.L + input.R) + input.C + 0.5 * (input.SL + input.SR)
6 (5.1)2 (Stereo)5.1.からステレオへのダウンミックス。
- 中央チャンネルは各側面サラウンドチャンネル(SLSR)と合算され、各側面チャンネルへ混合されます。2 チャンネルへとミックスダウンされる過程は低労力で行われ、各々の場合について、√2/2 で乗算されます。サブウーファー (LFE) チャンネルは失われます。
- output.L = input.L + 0.7071 * (input.C + input.SL)
- output.R = input.R
+ 0.7071 * (input.C + input.SR)
6 (5.1)4 (Quad)5.1.からクアッドへのダウンミックス。
- 中央チャンネルは各側面ノンサラウンドチャンネル(LR)と合算され、各側面チャンネルへ混合されます。2 チャンネルへとミックスダウンされる過程は低労力で行われ、各々の場合について、√2/2 で乗算されます。サラウンドチャンネルへの伝達には変化がありません。サブウーファー (LFE) チャンネルは失われます。
- output.L = input.L + 0.7071 * input.C
- output.R = input.R + 0.7071 * input.C
- output.SL = input.SL
- output.SR = input.SR
その他、非標準レイアウト非標準チャンネルレイアウトは channelInterpretationdiscrete へセットしたものとして操作されます。
- 新たなスピーカーレイアウトの将来的な定義を、仕様書でははっきりと認めています。従ってこの予備部分は、チャンネルに用いられる特定の数字が示すブラウザーの挙動が、将来的に変更された場合のために用意されたものではありません。
discrete各 (x)各 (y) (x<y の場合)離散チャンネルのアップミックス。
- 各出力チャンネルに、それに対応する同番号の入力チャンネルによる入力をします。対応する入力チャンネルが存在しないチャンネルは無音になります。
各 (x)各 (y) (x>y の場合)離散チャンネルのダウンミックス。
- 各出力チャンネルに、それに対応する同番号の入力チャンネルによる入力をします。対応する出力チャンネルが存在しない入力チャンネルは無視されます。
- -

視覚化

- -

原則、オーディオ視覚化は出力オーディオデータ(基本的にはゲインまたは周波数データ)に時間毎にアクセスすることで行われ、更にグラフなどの視覚化出力へ渡すためのグラフィカル技術が用いられます。Web Audio API は {{domxref("AnalyserNode")}} で、経由して渡されたオーディオ信号を変換せず利用することができます。ただしその出力は、{{htmlelement("canvas")}} などのような視覚化技術へ受け渡せるオーディオデータです。

- -

Without modifying the audio stream, the node allows to get the frequency and time-domain data associated to it, using a FFT.

- -

以下のメソッドを利用して、データの取得が可能です。

- -
-
{{domxref("AnalyserNode.getFloatFrequencyData()")}}
-
現在の周波数データを渡された {{domxref("Float32Array")}} 型配列にコピーします。
-
- -
-
{{domxref("AnalyserNode.getByteFrequencyData()")}}
-
現在の周波数データを渡された {{domxref("Uint8Array")}} 型配列(符号なしバイト配列)にコピーします。
-
- -
-
{{domxref("AnalyserNode.getFloatTimeDomainData()")}}
-
現在の波形データまたはタイムドメインデータを渡された{{domxref("Float32Array")}}型配列にコピーします。
-
{{domxref("AnalyserNode.getByteTimeDomainData()")}}
-
現在の波形データまたはタイムドメインデータを渡された{{domxref("Uint8Array")}}型配列(符号なしバイト配列)にコピーします。
-
- -
-

: より詳しい情報は、Web Audio API記事中の Visualizations with Web Audio API を参照してください。

-
- -

立体化

- -
-

(Web Audio API の {{domxref("PannerNode")}} と {{domxref("AudioListener")}} ノードによって操作される)立体音響化によって、オーディオシグナルの、空間を介した点における位置や振る舞いをモデル化することができ、その音声をリスナーが聞くことができます。

- -

パンナーの位置は、直行座標の右側に描かれています。ドップラー効果を作るに必要な、速度ベクトルを用いた移動、そして方向コーンを用いた方向性があります。このコーンは、例えば無指向性音源などのため、とても大きくなり得ます。

-
- -

The PannerNode brings a spatial position and velocity and a directionality for a given signal.

- -
-

リスナーの位置は、直行座標の右側に描かれています。度ベクトルを用いた移動と、リスナーの頭がポイントされている(頭部側と顔面側の)二方向ベクターを用いた方向性があります。これらはそれぞれリスナーの頭部の頂点からの方向と、リスナーの鼻にポイントされている方向とを定義しており、これらは直角となっています。

-
- -

We see the position, up and front vectors of an AudioListener, with the up and front vectors at 90° from the other.

- -
-

: より詳しい情報は、Web audio spatialization basics を参照してください。

-
- -

ファンインとファンアウト

- -

オーディオ用語では、fan-in は{{domxref("ChannelMergerNode")}} が一連の単一入力ソースを受け、単一マルチチャンネル信号を出力するプロセスを意味します。

- -

- -

Fan-out はその対となるプロセスを意味します。{{domxref("ChannelSplitterNode")}} が一つのマルチチャンネル入力源を受け、複数のモノラル出力信号を出力します。

- -

diff --git a/files/ja/web/api/web_audio_api/basic_concepts_behind_web_audio_api/index.md b/files/ja/web/api/web_audio_api/basic_concepts_behind_web_audio_api/index.md new file mode 100644 index 00000000000000..f69242cfa4a40d --- /dev/null +++ b/files/ja/web/api/web_audio_api/basic_concepts_behind_web_audio_api/index.md @@ -0,0 +1,397 @@ +--- +title: Basic concepts behind Web Audio API +slug: Web/API/Web_Audio_API/Basic_concepts_behind_Web_Audio_API +tags: + - Audio + - Beginner + - Guide + - Introduction + - Media + - Web Audio + - Web Audio API + - concepts + - sound + - 初心者 +translation_of: Web/API/Web_Audio_API/Basic_concepts_behind_Web_Audio_API +--- +この記事では、アプリを経由した音声伝達方法の設計をする際に、十分な情報に基づいた決断をする助けとなるよう、 Web Audio API の特徴がいかに働いているか、その背後にある音声理論について説明します。この記事はあなたを熟練のサウンドエンジニアにさせることはできないものの、Web Audio API が動く理由を理解するための十分な背景を提供します。 + +## オーディオグラフ + +[Web Audio API](/ja/docs/Web/API/Web_Audio_API) は、[オーディオコンテキスト](/ja/docs/Web/API/AudioContext)内部でのオーディオオペレーションに対するハンドリングを含み、**モジュラールーティング**を可能とするためにデザインされてきました。基本となる音声操作を成す要素は、**オーディオルーチングラフ**を形作るために、互いに接続される**オーディオノード**によります。様々なタイプのチャンネルレイアウトと共に、いくつかの音声源もまた、単一のコンテキスト内部にて支持されています。このモジュラーデザインは、複雑なオーディオ機能を、ダイナミックな音響効果と共に創造するために必要な柔軟性を与えています。 + +オーディオノードは、それら入出力を経由し接続され、単一あるいは複数の音声源から開始される一連のチェーンを作り、一つ以上のノードを経由しつつ、最終的な行き先に届き終了します。ただし、たとえば、音声データを視覚化することのみを求める場合などは、このような目的地は省いて構いません。シンプルで典型的な Web Audio ワークフローでは、以下のようになります: + +1. オーディオコンテキストの作成。 +2. {{HTMLElement("audio")}} タグ、オシレーター、ストリーム等といった、該当コンテキスト内での音声源の作成。 +3. リバーブ、バイカッドフィルター、パンナーコンプレッサーといった、音響効果用ノードの作成。 +4. 例えばあなたのシステムのスピーカーなど、音声の最終的な行き先の選択。 +5. 音声効果を(あるのならば)かけた後、最後に選択した行き先へ届いて終了する、音声源からの接続の確立。 + +**チャンネルの記法** + +信号上で利用できるオーディオチャンネルの数字は、2.0 や 5.1 のように、しばしば、数値の形式で表現されます。これは{{interwiki("wikipedia", "Surround_sound#Channel_notation", "channel notation")}}と呼ばれます。最初の数値は、該当の信号が含んでいるオーディオチャンネルの数です。ピリオドの後にある数値は、低音増強用出力として確保されているチャンネルの数を示しています。それらはしばしば**サブウーファー**とも称されます。 + +![A simple box diagram with an outer box labeled Audio context, and three inner boxes labeled Sources, Effects and Destination. The three inner boxes have arrow between them pointing from left to right, indicating the flow of audio information.](https://mdn.mozillademos.org/files/12237/webaudioAPI_en.svg) + +各入出力は、互いに特定のオーディオレイアウトを代表する、一つ以上のオーディオ**チャンネル**により構成されます。個別のチャンネル構造それぞれは、モノラル、ステレオ、クアッド、5.1 等を含んでサポートされています。 + +![Show the ability of AudioNodes to connect via their inputs and outputs and the channels inside these inputs/outputs.](https://mdn.mozillademos.org/files/14179/mdn.png) + +音声源はいくつかの方法で取得できます: + +- JavaScript 内部で(オシレーターのような)オーディオノードにより、直接音声を生成。 +- 未加工の PCM データから生成(この場合、該当オーディオコンテキストは、対応している音声フォーマット形式へのデコード手段を有しています)。 +- ({{HTMLElement("video")}} や {{HTMLElement("audio")}} のような)HTML media elements より取得。 +- (webcam やマイクロフォンのような)[Web RTC](/ja/docs/Web/API/WebRTC_API) {{domxref("MediaStream")}} により直接取得。 + +## オーディオデータ: サンプルとは? + +オーディオシグナルのプロセス中では、**サンプリング**とは[連続的な信号](https://en.wikipedia.org/wiki/Discrete_time_and_continuous_time)を[離散的な信号]()へ変換することを意味します。あるいは別の言い方をすると、バンドのライブ演奏のような連続的な音波を、コンピューターがその音声を区別されたブロックで処理できるようになる(離散時間信号の)一連のサンプルに変換します。 + +より詳しい情報は、Wikipedia の [Sampling(Signal processing)](https://ja.wikipedia.org/wiki/%E6%A8%99%E6%9C%AC%E5%8C%96)から見ることができます。 + +## オーディオバッファー: フレーム、サンプル、チャンネルセクション + +{{ domxref("AudioBuffer") }}は、チャンネルの数(モノラルの場合は 1,ステレオの場合は 2、等)、バッファー長すなわちバッファーに格納されているサンプルフレーム数、サンプルレートすなわち 1 秒間に再生されるサンプルフレーム数を、そのパラメーターとして持っています。 + +例として、float32 型の値 1 つは、(ステレオの場合は左側あるいは右側といった)特定のチャンネルにおいて、各特定時点おけるオーディオストリームの値を表しています。フレームまたはサンプルフレームは、一定時点における、音声を再生する全チャンネル分の値すべてのまとまりです。全チャンネルの全サンプルが一緒に再生されます(ステレオならば 2 チャンネル分、5.1 ならば 6 チャンネル分、等)。 + +サンプルレートとは、1 秒間に再生される、それらサンプルの数(または、1 フレームのサンプルすべてが同時に再生させることから、フレーム)であり、単位は Hz で測定されます。サンプルレートが高まるにつれ、音質は向上します。 + +モノラルとステレオのオーディオバッファーを見てみましょう。それらは 1 秒間、44100Hz で再生されます。 + +- モノラルバッファーは 44100 サンプル、44100 フレームで構成され、length プロパティは 44100 となる。 +- ステレオバッファーは 88200 サンプル、44100 フレームで構成され、length プロパティは、そのフレーム数に等しいため 44100 のままである。 + +![A diagram showing several frames in an audio buffer in a long line, each one containing two samples, as the buffer has two channels, it is stereo.](https://mdn.mozillademos.org/files/14801/sampleframe-english.png) + +バッファが再生されると、最も左のサンプルフレームが聞こえ、次にそのサンプルフレームのすぐ隣のサンプルフレームが続いてゆきます。ステレオの場合、両方のチャンネルから同時に聴こえます。サンプルフレームは、チャンネルの数とは独立しているため非常に便利であり、正確に音声を取り扱う有効な手段として、時間を表現してくれます。 + +> **Note:** **注:** フレーム数から秒数を得るためには、フレーム数をサンプルレートで単に除算するだけです。サンプル数からフレーム数を得るためには、チャンネル数で単に除算するだけです。 + +以下はいくつかの単純なサンプルです: + +```js +var context = new AudioContext(); +var buffer = context.createBuffer(2, 22050, 44100); +``` + +> **Note:** **注:** [デジタルオーディオに](https://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E3%82%AA%E3%83%BC%E3%83%87%E3%82%A3%E3%82%AA)おいて、**44100**[Hz](https://ja.wikipedia.org/wiki/%E3%83%98%E3%83%AB%E3%83%84)(**44.1kHz** とも表記される)は一般的な[サンプリング周波数](https://ja.wikipedia.org/wiki/%E6%A8%99%E6%9C%AC%E5%8C%96)です。なぜ 44.1kHz なのでしょう? +> +> 第一に、人間の耳の[可聴範囲](https://en.wikipedia.org/wiki/Hearing_range)は、大雑把に 20 から 20000Hz の範囲です。[Nyquist-Shannon のサンプリング定理](https://ja.wikipedia.org/wiki/%E6%A8%99%E6%9C%AC%E5%8C%96%E5%AE%9A%E7%90%86)により、サンプリング周波数は再現したい最大周波数の 2 倍以上でなくてはなりません。したがって、サンプリングレートは 40kHz 以上でなくてはなりません。 +> +> 第二に、シグナルはサンプリング前に、[偽信号](https://ja.wikipedia.org/wiki/%E6%8A%98%E3%82%8A%E8%BF%94%E3%81%97%E9%9B%91%E9%9F%B3)の発生をさせないため、[ローパスフィルタリング](https://ja.wikipedia.org/wiki/%E3%83%AD%E3%83%BC%E3%83%91%E3%82%B9%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF)されていなければなりません。理想的ローパスフィルターが 20kHz 以下の周波数を(減衰させずに)完璧に通し、20kHz 以上の周波数を完璧に遮断する一方で、実際には、周波数が部分的に減衰する場所となる、[トランジションバンド](https://en.wikipedia.org/wiki/Transition_band)が必要です。このバンドが広くなるにつれ、[減衰フィルター](https://en.wikipedia.org/wiki/Anti-aliasing_filter)を作るのは簡単かつ効率的になります。44.1kHz サンプリング周波数は、2.05kHz のトランジションバンドを与えます。 + +この呼び出しをする場合、チャンネル数 2 のステレオバッファーを取得し、AudioContext 上で(非常に一般的で、通常のサウンドカードではほとんどはレートとなる)44100Hz にて再生される音源が、0.5 秒間続きます: 22050 フレーム/44100Hz = 0.5 秒。 + +```js +var context = new AudioContext(); +var buffer = context.createBuffer(1, 22050, 22050); +``` + +この呼び出しをする場合、モノラルバッファーをチャンネル数 1 で取得し、AudioContext 上で 44100Hz にて再生される際に自動で 44100Hz へ*再サンプリングされ*(したがって 44100 フレームとなり)、1 秒間続きます: 44100 フレーム/44100Hz = 1 秒。 + +> **Note:** **注**: オーディオの再サンプリングは、画像のサイズ変更と非常に似たものです。例えば 16x16 の画像があり、32x32 のスペースを満たしたいとします。サイズ変更(あるいは再サンプリング)を行い、結果として(サイズ変更アルゴリズムの違いに依存して、ぼやけたりエッジができたりと)画質の低下を伴いますが、スペースを減らすサイズ変更済み画像が作れます。再サンプリングされたオーディオもまったく同じです。スペースを保てるものの、実際には高音域のコンテンツや高音を適切に再現することはできません。 + +### バッファーセクションの平面性対交差性 + +Web AudioAPI は平面的なバッファー形式を採用しています。左右のチャンネルは、以下のように格納されています: + + LLLLLLLLLLLLLLLLRRRRRRRRRRRRRRRR (for a buffer of 16 frames) + +これは音声処理における一般的な形式です: これにより各チャンネルの独立した処理が簡単になります。 + +代わりの方式としては、交差的な形式が用いられます: + + LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR (for a buffer of 16 frames) + +この形式は、大掛かりな処理を必要としない音声を、格納し再生する目的として一般的です。例えばデコード済み MP3 音楽ストリームなどがあります。 + +Web Audio API は、音声処理に適することを理由に、平面的なバッファー**のみ**を採用しています。通常は平面的ですが、再生用に音声がサウンドカードへ送られる際は、交差的に変換されます。反対に、MP3 音声がデコードされる場合、元々は交差形式だったものの、音声処理のため平面形式へと変換されます。 + +## オーディオチャンネル + +異なるオーディオバッファーでは、それぞれ異なった数のチャンネルを含んでいます: より基本的なモノラルとステレオ(それぞれチャンネル数 1 と 2)から始まり、より複雑なクアッドもしくは 5.1 のような、異なるサウンドサンプルが各チャンネルに含まれ、よりリッチな音声体験を導くセットもあります。チャンネルは通常、以下のテーブルに示される、標準的な略語によって示されます: + +| _Mono_ | `0: M: mono` | +| -------- | -------------------------------------------------------------------------------------------------- | +| _Stereo_ | `0: L: left 1: R: right` | +| _Quad_ | `0: L: left 1: R: right 2: SL: surround left 3: SR: surround right` | +| _5.1_ | `0: L: left 1: R: right 2: C: center 3: LFE: subwoofer 4: SL: surround left 5: SR: surround right` | + +### アップミキシングとダウンミキシング + +入力と出力のチャンネル数が一致しない場合、以下のルールに基づいてアップミキシングまたはダウンミキシングが行われます。これは{{domxref("AudioNode.channelInterpretation")}} プロパティを `speakers` または `discrete` へとセットしてコントロールできます。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
説明入力チャンネル出力チャンネルミキシングルール
speakers1 (Mono)2 (Stereo) + モノラルからステレオへのアップミックス。
M入力チャンネルは(L と + R の)両出力チャンネル用に使われます。
output.L = input.M
output.R = input.M
+
1 (Mono)4 (Quad) + モノラルからクアッドへのアップミックス。
M + 入力チャンネルは(L と + R の)ノンサラウンド出力チャンネル用に使われます。(SL + と SR の)サラウンド出力チャンネルは無音です。
output.L = input.M
output.R = input.M
output.SL = 0
output.SR + = 0
+
1 (Mono)6 (5.1) + モノラルから 5.1.へのアップミックス。
M + 入力チャンネルは(C + の)ノン中央出力チャンネル用に使われます。その他すべての(L, + R, LFE, SL, + SR)出力チャンネルは無音です。
output.L = 0
output.R = 0

output.C = input.M
output.LFE = 0
output.SL = 0
output.SR + = 0
+
2 (Stereo)1 (Mono) + モノラルからステレオへのダウンミックス。
(L + と + R + の)両入力チャンネルは等しく結合され、単一出力チャンネル(M)になります。
output.M = 0.5 * (input.L + input.R) +
2 (Stereo)4 (Quad) + ステレオからクアッドへのアップミックス。
左右(L + と R)入力チャンネルはそれぞれ(L と + R の)ノンサラウンド出力チャンネル用に使われます。(SL + と SR の)サラウンド出力チャンネルは無音です。
output.L = input.L
output.R = input.R
output.SL = 0
output.SR + = 0
+
2 (Stereo)6 (5.1) + ステレオから 5.1.へのアップミックス。
左右(L + と R)入力チャンネルはそれぞれ(L と + R の)ノンサラウンド出力チャンネル用に使われます。(SL + と + SR + の)サラウンド出力チャンネル、中央チャンネル(C)、サブウーファー(LFE)はすべて同様に無音です。
output.L = input.L
output.R = input.R
output.C = 0
output.LFE + = 0
output.SL = 0
output.SR = 0
+
4 (Quad)1 (Mono) + クアッドからモノラルへのダウンミックス。
(L, + R, SL, + SR)入力チャンネルは等しく結合され、単一出力チャンネル(M)になります。
output.M = 0.25 * (input.L + input.R + input.SL + input.SR) +
4 (Quad)2 (Stereo) + クアッドからステレオへのダウンミックス。両左入力チャンネル
(L と + SL)は等しく結合され、単一左出力チャンネル(L)になります。同様に、両右入力チャンネル(R + と + SR)は等しく結合され、単一右出力チャンネル(R)になります。
output.L = 0.5 * (input.L + input.SL)
output.R = 0.5 * (input.R + input.SR) +
4 (Quad)6 (5.1) + クアッドから 5.1.へのアップミックス。
(L, + R, SL, + SR)入力チャンネルはそれぞれ(L と + R + の)出力チャンネル用に使われます。中央チャンネル(C)、サブウーファー(LFE)は無音です。
output.L = input.L
output.R = input.R
output.C = 0
output.LFE + = 0
output.SL = input.SL
output.SR = input.SR
+
6 (5.1)1 (Mono) + 5.1.からモノラルへのダウンミックス。左チャンネル(L, SL)、右チャンネル(R, + SR)、中央チャンネルはそれぞれ混合されます。サラウンドチャンネルは僅かに減衰され、標準側面チャンネルは利用のために、単一チャンネルを√2/2 + で乗算したものとして出力が補強されます。サブウーファー(LFE)チャンネルは失われます。
output.M = 0.7071 * (input.L + input.R) + input.C + 0.5 * (input.SL + + input.SR) +
6 (5.1)2 (Stereo) + 5.1.からステレオへのダウンミックス。
中央チャンネルは各側面サラウンドチャンネル(SL と + SR)と合算され、各側面チャンネルへ混合されます。2 + チャンネルへとミックスダウンされる過程は低労力で行われ、各々の場合について、√2/2 + で乗算されます。サブウーファー (LFE) + チャンネルは失われます。
output.L = input.L + 0.7071 * (input.C + input.SL)
output.R = + input.R
+ 0.7071 * (input.C + input.SR) +
6 (5.1)4 (Quad) + 5.1.からクアッドへのダウンミックス。
中央チャンネルは各側面ノンサラウンドチャンネル(L と + R)と合算され、各側面チャンネルへ混合されます。2 + チャンネルへとミックスダウンされる過程は低労力で行われ、各々の場合について、√2/2 + で乗算されます。サラウンドチャンネルへの伝達には変化がありません。サブウーファー + (LFE) チャンネルは失われます。
output.L = input.L + 0.7071 * input.C
output.R = input.R + + 0.7071 * input.C
output.SL = input.SL
output.SR = input.SR
+
その他、非標準レイアウト + 非標準チャンネルレイアウトは channelInterpretation を + discrete + へセットしたものとして操作されます。
新たなスピーカーレイアウトの将来的な定義を、仕様書でははっきりと認めています。従ってこの予備部分は、チャンネルに用いられる特定の数字が示すブラウザーの挙動が、将来的に変更された場合のために用意されたものではありません。 +
discrete各 (x)各 (y) (x<y の場合) + 離散チャンネルのアップミックス。
各出力チャンネルに、それに対応する同番号の入力チャンネルによる入力をします。対応する入力チャンネルが存在しないチャンネルは無音になります。 +
各 (x)各 (y) (x>y の場合) + 離散チャンネルのダウンミックス。
各出力チャンネルに、それに対応する同番号の入力チャンネルによる入力をします。対応する出力チャンネルが存在しない入力チャンネルは無視されます。 +
+ +## 視覚化 + +原則、オーディオ視覚化は出力オーディオデータ(基本的にはゲインまたは周波数データ)に時間毎にアクセスすることで行われ、更にグラフなどの視覚化出力へ渡すためのグラフィカル技術が用いられます。Web Audio API は {{domxref("AnalyserNode")}} で、経由して渡されたオーディオ信号を変換せず利用することができます。ただしその出力は、{{htmlelement("canvas")}} などのような視覚化技術へ受け渡せるオーディオデータです。 + +![Without modifying the audio stream, the node allows to get the frequency and time-domain data associated to it, using a FFT.](https://mdn.mozillademos.org/files/12521/fttaudiodata_en.svg) + +以下のメソッドを利用して、データの取得が可能です。 + +- {{domxref("AnalyserNode.getFloatFrequencyData()")}} + - : 現在の周波数データを渡された {{domxref("Float32Array")}} 型配列にコピーします。 + + + +- {{domxref("AnalyserNode.getByteFrequencyData()")}} + - : 現在の周波数データを渡された {{domxref("Uint8Array")}} 型配列(符号なしバイト配列)にコピーします。 + + + +- {{domxref("AnalyserNode.getFloatTimeDomainData()")}} + - : 現在の波形データまたはタイムドメインデータを渡された{{domxref("Float32Array")}}型配列にコピーします。 +- {{domxref("AnalyserNode.getByteTimeDomainData()")}} + - : 現在の波形データまたはタイムドメインデータを渡された{{domxref("Uint8Array")}}型配列(符号なしバイト配列)にコピーします。 + +> **Note:** **注**: より詳しい情報は、Web Audio API 記事中の [Visualizations with Web Audio API](/ja/docs/Web/API/Web_Audio_API/Visualizations_with_Web_Audio_API) を参照してください。 + +## 立体化 + +(Web Audio API の {{domxref("PannerNode")}} と {{domxref("AudioListener")}} ノードによって操作される)立体音響化によって、オーディオシグナルの、空間を介した点における位置や振る舞いをモデル化することができ、その音声をリスナーが聞くことができます。 + +パンナーの位置は、直行座標の右側に描かれています。ドップラー効果を作るに必要な、速度ベクトルを用いた移動、そして方向コーンを用いた方向性があります。このコーンは、例えば無指向性音源などのため、とても大きくなり得ます。 + +![The PannerNode brings a spatial position and velocity and a directionality for a given signal.](https://mdn.mozillademos.org/files/12511/pannernode_en.svg) + +リスナーの位置は、直行座標の右側に描かれています。度ベクトルを用いた移動と、リスナーの頭がポイントされている(頭部側と顔面側の)二方向ベクターを用いた方向性があります。これらはそれぞれリスナーの頭部の頂点からの方向と、リスナーの鼻にポイントされている方向とを定義しており、これらは直角となっています。 + +![We see the position, up and front vectors of an AudioListener, with the up and front vectors at 90° from the other.](https://mdn.mozillademos.org/files/14311/WebAudioListenerReduced.png) + +> **Note:** **注**: より詳しい情報は、[Web audio spatialization basics](/ja/docs/Web/API/Web_Audio_API/Web_audio_spatialization_basics) を参照してください。 + +## ファンインとファンアウト + +オーディオ用語では、**fan-in** は{{domxref("ChannelMergerNode")}} が一連の単一入力ソースを受け、単一マルチチャンネル信号を出力するプロセスを意味します。 + +![](https://mdn.mozillademos.org/files/12517/fanin.svg) + +**Fan-out** はその対となるプロセスを意味します。{{domxref("ChannelSplitterNode")}} が一つのマルチチャンネル入力源を受け、複数のモノラル出力信号を出力します。 + +![](https://mdn.mozillademos.org/files/12515/fanout.svg) diff --git a/files/ja/web/api/web_audio_api/index.html b/files/ja/web/api/web_audio_api/index.html deleted file mode 100644 index 1c8d69a2e733c7..00000000000000 --- a/files/ja/web/api/web_audio_api/index.html +++ /dev/null @@ -1,299 +0,0 @@ ---- -title: Web Audio API -slug: Web/API/Web_Audio_API -tags: - - API - - Audio - - Example - - Landing - - Overview - - Web Audio API - - sound -translation_of: Web/API/Web_Audio_API ---- -
{{DefaultAPISidebar("Web Audio API")}}
- -

Web Audio API はウェブ上で音声を扱うための強力で多機能なシステムを提供します。これにより開発者は音源を選択したり、エフェクトを加えたり、ビジュアライゼーションを加えたり、パンニングなどの特殊効果を適用したり、他にもたくさんのいろいろなことができるようになります。

- -

Web audio の概念と利用方法

- -

Web Audio API は音声操作をオーディオコンテキスト内の操作として実現し、モジュラールーティングできるようにデザインされています。基本的な操作は オーディオノードとして表現されています。これを接続することで、オーディオグラフを作成します。チャンネル構成の異なる複数の音源も 1 つのコンテキスト内で扱えます。この構成によって、複雑で動的な音声操作を実現できるようになっています。

- -

オーディオノードは、入力と出力によってチェーンと単純なウェブにリンクされています。通常、1 つまたは複数の音源から始まります。音源は、非常に小さなタイムスライス、多くの場合は 1秒間に数万個のサウンドインテンシティ (サンプル) の配列を提供します。これらは数学的に計算されたもの ({{domxref("OscillatorNode")}} など) や、音声ファイルや動画ファイル ({{domxref("AudioBufferSourceNode")}} や {{domxref("MediaElementAudioSourceNode")}} など) やオーディオストリーム ({{domxref("MediaStreamAudioSourceNode")}}) からの録音である場合もあります。実際には、サウンドファイルは、マイクや電気楽器から入ってきた音の強さそのものを録音したものであり、それがミックスされて一つの複雑な波になっています。

- -

ノードの出力は他のノードの入力に紐付けられます。つまり、入力ストリームにミックスや編集をして他へ出力できるわけです。一般的な編集の例としては音量の変更です( {{domxref("GainNode")}} )。意図した効果を十分に施したあと、ユーザーに音声を聞かせたい場合、サウンドをスピーカーやヘッドオンに流すために、{{domxref("AudioContext.destination")}} の入力に紐付ける必要があります。

- -

簡潔で通常の Web Audio の使い方は次のようになります:

- -
    -
  1. オーディオコンテキストを作成する
  2. -
  3. コンテキストの中で、<audio>,オシレーター,ストリームなどの音源を作成する
  4. -
  5. リバーブ・フィルター・パンナー・コンプレッサーなどのエフェクトノードを作成する
  6. -
  7. 最終的な音声の到達先を選ぶ(例えばスピーカー)
  8. -
  9. 音源をエフェクトに繋げ、エフェクトを到達先(destination)に繋げる
  10. -
- -

オーディオコンテキストと書かれた外側のボックスと、音源、エフェクト、デスティネーションと書かれた3つのボックスからなるシンプルなボックスダイアグラムです。3つのボックスの間には矢印があり、オーディオ情報の流れを示しています。

- -

タイミングは高精度で低遅延に制御されます。正確にイベントに反応したり特定の音声サンプルにアクセスしたりすることができます。ドラムマシンやシーケンサーのようなアプリケーションを作ることができます。

- -

Web Audio API では、立体音響を制御することもできます。ソースリスナーモデルに基づいたシステムを使用することで、パンモデルを制御し、音源の移動 (またはリスナーの移動) によって引き起こされる距離に起因する減衰を処理することができます。

- -
-

Web Audio API の理論に関する詳細は Basic concepts behind Web Audio API をご覧ください。

-
- -

Web Audio API がターゲットとする人

- -

Web Audio API は音声技術に馴染みがない人にとって、怖気づくかもしれません。また、多くの機能があるため、開発者にとってとっつきにくいものになっています。

- -

Web Audio API の用途としては、futurelibrary.no のような雰囲気作りのためやフォームの検証に音を活用するために、単に音声をウェブサイトに組み込むために使用できます。一方で、高度な対話型ツールの作成にも利用できます。こうしたことを踏まえると、開発者とミュージシャンの双方に適していると言えます。

- -

プログラミングは得意だけど API の構造と用語の解説が必要な人のために、簡単なチュートリアルがあります。

- -

また、Web Audio API の背景にある基本理念に関する記事もあり、特にこの API の範囲でデジタルオーディオがどのように動作するのかを理解するのに役立ちます。また API の基礎となる優れた概念の紹介も含んでいます。

- -

プログラムを書く作業はカードゲームに例えられます。ルールを学んで遊んでみて、またルールを学んで再び遊んでみて・・・。したがって最初のチュートリアルと記事を見たあとにピンとこなかった場合、最初のチュートリアルを拡張して、学んだことを実践して、段階的に高度なことを学んでいく発展的なチュートリアルがあります。

- -

それとは別に、この API のすべての機能を網羅したチュートリアルとリファレンスを用意しています。このページのサイドバーを参照してください。

- -

音楽的な側面に精通し、音楽理論の概念に精通し、楽器の構築を開始したい場合は、発展的チュートリアルやその他の解説を基に制作に移る事ができるでしょう(上記のリンク付きチュートリアルでは、スケジューリングに関する注意事項、オーダーメイドの発振器やエンベロープの作成、LFO などについて説明しています) 。

- -

プログラミングの基本に慣れていない場合は、まず初級者向けの JavaScript チュートリアルを参照してから、このページに戻ってください。初級者向けの JavaScript学習モジュールを参照してください。

- -

Web Audio API インターフェイス

- -

Web Audio API は全部で 28 のインターフェイスと関連するイベントを持ちます。それらは機能的に 9 個のカテゴリに分けられます。

- -

一般的なオーディオグラフの定義

- -

Web Audio API で利用するオーディオグラフのコンテナと、その構成要素は以下の通りです。

- -
-
{{domxref("AudioContext")}}
-
音声モジュールを組み合わせて作成される、音声処理のグラフを表します。グラフ内の各モジュールは {{domxref("AudioNode")}} として表現されています。オーディオコンテキストは、コンテキスト内での処理を担当するノードの作成を行います。
-
{{domxref("AudioContextOptions")}}
-
AudioContextOptionsAudioContext を作成するときにオプションを渡したいときに使用します。
-
{{domxref("AudioNode")}}
-
AudioNode インターフェイスは音声処理のモジュールの表現しています。これには{{HTMLElement("audio")}}要素や{{HTMLElement("video")}} 要素のような音源、音声の出力先、{{domxref("BiquadFilterNode")}} や {{domxref("GainNode")}}) のようなフィルターなどが含まれます。
-
{{domxref("AudioParam")}}
-
AudioParam インターフェイスは {{domxref("AudioNode")}} の持つような、音声に関するパラメータを表現しています。値をセットするだけでなく、差分を指定することも可能です。また指定した時間やパターンで、値を変更をすることもできます。
-
{{domxref("AudioParamMap")}}
-
{{domxref("AudioParam")}} のマップのようなインターフェイスを提供します。つまり forEach()get()has()keys()values() メソッドや size プロパティが使えます。
-
{{domxref("BaseAudioContext")}}
-
BaseAudioContext インターフェイスはオンライン音声処理グラフ( {{domxref("AudioContext")}})やオフライン音声処理グラフ( {{domxref("OfflineAudioContext")}})の基底となるものです。直接 BaseAudioContext を使うことはなく、これを継承するこれら 2 つのインターフェイスを介して使用します。
-
{{event("ended_(Web_Audio)", "ended")}} (event)
-
ended イベントは、再生が終了した際に発火するイベントです。
-
- -

音源の定義

- -

Web Audio API 内で利用できる音源は以下の通りです。

- -
-
{{domxref("AudioScheduledSourceNode")}}
-
AudioScheduledSourceNode は {{domxref("AudioNode")}} の一種で、いくつかの音源ノードの親インターフェイスです。
-
{{domxref("OscillatorNode")}}
-
OscillatorNode はサイン波を出力する {{domxref("AudioNode")}} です。出力する波形の周波数を指定できます。
-
{{domxref("AudioBuffer")}}
-
AudioBuffer はメモリー上に展開された短い音声データを表します。{{ domxref("AudioContext.createBuffer()") }} によって音声ファイルから、もしくは{{ domxref("AudioContext.createBuffer()") }} メソッドによって生データから作成されます。このデータは {{ domxref("AudioBufferSourceNode") }} を利用して再生されます。
-
{{domxref("AudioBufferSourceNode")}}
-
AudioBufferSourceNode は {{domxref("AudioNode")}} の一種で、メモリー上の音声データを利用した音源です。音声データ自身は {{domxref("AudioBuffer")}} として保存されています。
-
{{domxref("MediaElementAudioSourceNode")}}
-
MediaElementAudioSourceNode は {{domxref("AudioNode")}} の一種で、{{ htmlelement("audio") }} 要素や {{ htmlelement("video") }} 要素を利用する音源です。
-
{{domxref("MediaStreamAudioSourceNode")}}
-
MediaStreamAudioSourceNode は {{domxref("AudioNode")}} の一種で、マイクや Web カメラといった WebRTC {{domxref("MediaStream")}} からの入力を扱える音源です。複数の音声トラックがストリーム上にある場合、{{domxref("MediaStreamTrack.id", "id")}} は辞書順(アルファベット順)です。
-
{{domxref("MediaStreamTrackAudioSourceNode")}}
-
MediaStreamTrackAudioSourceNode は{{domxref("AudioNode")}} の一種で、{{domxref("MediaStreamTrack")}} からの入力を扱える音源です。{{domxref("AudioContext.createMediaStreamTrackSource", "createMediaStreamTrackSource()")}} メソッドによって作られたノードの場合、使用するトラックを指定してください。MediaStreamAudioSourceNode 以上の制御を提供します。
-
- -

オーディオエフェクトフィルターの定義

- -

これらを利用すると、音源からの音声にエフェクトをかけられます。

- -
-
{{domxref("BiquadFilterNode")}}
-
BiquadFilterNode は {{domxref("AudioNode")}} の一種で、単純な低次フィルターです。フィルターやトーンコントロール、グラフィックイコライザで利用されます。BiquadFilterNode の入力と出力はともに 1 つです。
-
{{domxref("ConvolverNode")}}
-
ConvolverNode{{domxref("AudioNode")}} の一種で、Audiobuffer に対して線形畳み込みを行います。リバーブの実現に利用されます。
-
{{domxref("DelayNode")}}
-
DelayNode は {{domxref("AudioNode")}} の一種で、delay-line を表します。入力された音声を、遅らせて出力します。
-
{{domxref("DynamicsCompressorNode")}}
-
DynamicsCompressorNode はコンプレッサとして働きます。大きな音の音量を絞ることで、複数の音を同時に再生した時に起きがちな、音のクリッピングや歪みを回避します。
-
{{domxref("GainNode")}}
-
GainNode は {{domxref("AudioNode")}} の一種で、入力された音の音量を指定されたものに変更して出力します。
-
{{domxref("WaveShaperNode")}}
-
WaveShaperNode は {{domxref("AudioNode")}} の一種で、非線形のディストーションエフェクトを実現します。curve 属性に指定された関数を用いて、入力を歪ませます。音を歪ませ、温かみを与えるために用いられます。
-
{{domxref("PeriodicWave")}}
-
{{ domxref("OscillatorNode") }} の出力の波形を変えるために用いられます。
-
{{domxref("IIRFilterNode")}}
-
一般的な無限インパルス応答(IIR)フィルターの実装です。トーン制御デバイスやグラフィックイコライザーの実装に利用できます。
-
- -

音声の出力先の定義

- -

処理した音声の出力先を、以下のもので定めます。

- -
-
{{domxref("AudioDestinationNode")}}
-
AudioDestinationNode はコンテキスト内での出力先を表します。通常はスピーカとなっています。
-
{{domxref("MediaStreamAudioDestinationNode")}}
-
MediaElementAudioSourceNode は音声の出力先となる {{domxref("AudioNode")}} の一種で、WebRTC {{domxref("MediaStream")}} と 1 つの AudioMediaStreamTrack から構成されます。{{ domxref("Navigator.getUserMedia") }} で取得された MediaStream と同様に扱えます。
-
- -

分析と可視化

- -

音声の時間領域 / 周波数領域分析には、AnalyserNode を利用します。

- -
-
{{domxref("AnalyserNode")}}
-
AnalyserNode を利用すると、音声のリアルタイムに時間領域分析と周波数領域分析が行えます。これを利用すると、音声の可視化が行えます。
-
- -

オーディオチャンネルの分岐と合成

- -

オーディオチャンネルを分岐したり合成したりするのにこれらのインターフェイスを使います。

- -
-
{{domxref("ChannelSplitterNode")}}
-
The ChannelSplitterNode は音源の複数のチャンネルを別々のモノラル出力へ分離します。
-
{{domxref("ChannelMergerNode")}}
-
ChannelMergerNode は異なるモノラルの入力を、1 つの出力へとまとめます。それぞれの入力は、出力内のチャンネルとなります。
-
- -

立体音響

- -

これらのインターフェイスを使用すると、立体音響のパンニング効果を音源に追加することができます。

- -
-
{{domxref("AudioListener")}}
-
AudioListener インターフェイスは聴者の向きと位置を表します。
-
{{domxref("PannerNode")}}
-
PannerNode は {{domxref("AudioNode")}} の一種で、空間内での音の振る舞いを規定します。位置はカルテシアンの右手座標系で表され、速度ベクトルで動きを表します。向きはコーンの向きで表現します。
-
{{domxref("StereoPannerNode")}}
-
StereoPannerNode インターフェイスは単純なステレオプランナーで、音声ストリームのパン(左右バランス)を調整できます。
-
- -

JavaScript による音声処理

- -

音声Worklet を使うことで、JavaScript や WebAssembly を使って自作の{{domxref("AudioNode")}}を定義できます。音声Worklet は {{domxref("Worklet")}} インターフェイスという軽量版 {{domxref("Worker")}} インターフェイスを実装しています。Chrome 66 以降で既定で有効です。

- -
-
{{domxref("AudioWorklet")}} {{experimental_inline}}
-
AudioWorklet インターフェイスは {{domxref("AudioContext")}} オブジェクトの {{domxref("BaseAudioContext.audioWorklet", "audioWorklet")}} を通して利用することができ、メインスレッドから実行されるオーディオワークレットにモジュールを追加することができます。
-
{{domxref("AudioWorkletNode")}} {{experimental_inline}}
-
AudioWorkletNode インターフェイスは {{domxref("AudioNode")}} の一種で、音声グラフに組み込んだり、対応する AudioWorkletProcessor にメッセージを送信できます。
-
{{domxref("AudioWorkletProcessor")}} {{experimental_inline}}
-
AudioWorkletProcessor インターフェイスは AudioWorkletGlobalScope で実行する音声処理コードで、音声の生成・処理・分析を直接行ったり、対応する AudioWorkletNode にメッセージを送信できます。
-
{{domxref("AudioWorkletGlobalScope")}} {{experimental_inline}}
-
AudioWorkletGlobalScope インターフェイスは WorkletGlobalScope から派生するオブジェクトで、音声処理スクリプトが実行されるワーカーコンテキストを表現します。メインスレッド上ではなく、ワークレットスレッド上で JavaScript を使って直接オーディオデータの生成、処理、分析ができるように設計されています。
-
- -

Obsolete: script processor nodes

- -

音声Worklet が定義されるよりも昔、Web Audio API は JavaScript を使用する音声処理に ScriptProcessorNode を利用していました。しかしながら処理がメインスレッドで走るためにパフォーマンスが良くありませんでした。歴史的な理由から ScriptProcessorNode は維持されていますが非推奨であり、将来の規格から取り除かれる予定です。

- -
-
{{domxref("ScriptProcessorNode")}} {{deprecated_inline}}
-
ScriptProcessorNode を利用すると、JavaScript から音声データの生成、処理、分析を行えます。このノードは {{domxref("AudioNode")}} の一種で、入力と出力の二つのバッファとリンクしています。入力バッファに新しいデータがセットされる度に {{domxref("AudioProcessingEvent")}} インターフェイスを実装したイベントが生起します。イベントハンドラは出力バッファにデータをセットして処理を終了します。
-
{{event("audioprocess")}} (event) {{deprecated_inline}}
-
audioprocess イベントは {{domxref("ScriptProcessorNode")}} の処理が可能になった際に発火します。
-
{{domxref("AudioProcessingEvent")}} {{deprecated_inline}}
-
AudioProcessingEvent は {{domxref("ScriptProcessorNode")}} の入力バッファが処理可能になったことを表すイベントです。
-
- -

オフライン / バックグラウンドでの処理

- -

以下のようにすると、バックグラウンドでオーディオグラフを非常に高速に処理/レンダリングし、端末のスピーカーではなく {{domxref("AudioBuffer")}} にレンダリングすることができます。

- -
-
{{domxref("OfflineAudioContext")}}
-
OfflineAudioContext は {{domxref("AudioContext")}} の一種で、{{domxref("AudioNode")}} を組み合わせて、音声処理を行うグラフを表現しています。通常の AudioContext と異なりOfflineAudioContext は音声を出力せず、バッファ内で高速に処理を行います。
-
{{event("complete")}} (event)
-
complete イベントは {{domxref("OfflineAudioContext")}} の処理が終了した時に発火します。
-
{{domxref("OfflineAudioCompletionEvent")}}
-
OfflineAudioCompletionEvent は {{domxref("OfflineAudioContext")}} の処理が終了したことを表します。{{event("complete")}} イベントは、これを実装しています。
-
- -

廃止されたインターフェイス

- -

以下のものは、Web Audio API の古い仕様には存在しましたが、現在は廃止され、別のものに置き換えられています。

- -
-
{{domxref("JavaScriptNode")}}
-
JavaScript で音声を直接処理できます。廃止され、{{domxref("ScriptProcessorNode")}} に置き換えられています。
-
{{domxref("WaveTableNode")}}
-
定期的な波形変換を行います。廃止され {{domxref("PeriodicWave")}} に置き換えられています。
-
- -

ガイドとチュートリアル

- -

{{LandingPageListSubpages}}

- -

- -

GitHub の webaudio-example に多数の例が掲載されています。

- -

仕様書

- - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName('Web Audio API')}}{{Spec2('Web Audio API')}}
- -

ブラウザーの互換性

- -
-

AudioContext

- -
-

{{Compat("api.AudioContext", 0)}}

-
-
- -

関連情報

- -

チュートリアル/ガイド

- - - -

ライブラリ

- -
    -
  • Tones: a simple library for playing specific tones/notes using the Web Audio API.
  • -
  • Tone.js: a framework for creating interactive music in the browser.
  • -
  • howler.js: a JS audio library that defaults to Web Audio API and falls back to HTML5 Audio, as well as providing other useful features.
  • -
  • Mooog: jQuery-style chaining of AudioNodes, mixer-style sends/returns, and more.
  • -
  • XSound: Web Audio API Library for Synthesizer, Effects, Visualization, Recording ... etc
  • -
  • OpenLang: HTML5 video language lab web application using the Web Audio API to record and combine video and audio from different sources into a single file (source on GitHub)
  • -
  • Pts.js: Simplifies web audio visualization (guide)
  • -
- - - - diff --git a/files/ja/web/api/web_audio_api/index.md b/files/ja/web/api/web_audio_api/index.md new file mode 100644 index 00000000000000..b27f70512fa066 --- /dev/null +++ b/files/ja/web/api/web_audio_api/index.md @@ -0,0 +1,252 @@ +--- +title: Web Audio API +slug: Web/API/Web_Audio_API +tags: + - API + - Audio + - Example + - Landing + - Overview + - Web Audio API + - sound +translation_of: Web/API/Web_Audio_API +--- +{{DefaultAPISidebar("Web Audio API")}} + +Web Audio API はウェブ上で音声を扱うための強力で多機能なシステムを提供します。これにより開発者は音源を選択したり、エフェクトを加えたり、ビジュアライゼーションを加えたり、パンニングなどの特殊効果を適用したり、他にもたくさんのいろいろなことができるようになります。 + +## Web audio の概念と利用方法 + +Web Audio API は音声操作を**オーディオコンテキスト**内の操作として実現し、モジュラールーティングできるようにデザインされています。基本的な操作は **オーディオノード**として表現されています。これを接続することで、オーディオグラフを作成します。チャンネル構成の異なる複数の音源も 1 つのコンテキスト内で扱えます。この構成によって、複雑で動的な音声操作を実現できるようになっています。 + +オーディオノードは、入力と出力によってチェーンと単純なウェブにリンクされています。通常、1 つまたは複数の音源から始まります。音源は、非常に小さなタイムスライス、多くの場合は 1 秒間に数万個のサウンドインテンシティ (サンプル) の配列を提供します。これらは数学的に計算されたもの ({{domxref("OscillatorNode")}} など) や、音声ファイルや動画ファイル ({{domxref("AudioBufferSourceNode")}} や {{domxref("MediaElementAudioSourceNode")}} など) やオーディオストリーム ({{domxref("MediaStreamAudioSourceNode")}}) からの録音である場合もあります。実際には、サウンドファイルは、マイクや電気楽器から入ってきた音の強さそのものを録音したものであり、それがミックスされて一つの複雑な波になっています。 + +ノードの出力は他のノードの入力に紐付けられます。つまり、入力ストリームにミックスや編集をして他へ出力できるわけです。一般的な編集の例としては音量の変更です( {{domxref("GainNode")}} )。意図した効果を十分に施したあと、ユーザーに音声を聞かせたい場合、サウンドをスピーカーやヘッドオンに流すために、{{domxref("AudioContext.destination")}} の入力に紐付ける必要があります。 + +簡潔で通常の Web Audio の使い方は次のようになります: + +1. オーディオコンテキストを作成する +2. コンテキストの中で、`