recursal/MDN huggingface dataset:
VRDisplay.getEyeParameters()
============================

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

**`getEyeParameters()`** は `VRDisplay` インターフェイスのメソッドで、指定された目の視線パラメーターを持つ `VREyeParameters` オブジェクトを返します。

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

構文
--


```js
getEyeParameters(whichEye);
```

### 引数

`whichEye`

文字列で、視線パラメーターを取得したい目を表します。指定できる値は `left` と `right` です（VREye 列挙型 で定義されています）。

### 返値

`VREyeParameters` オブジェクト、または VR コンテンツを表示できない場合（例えば `VRDisplayCapabilities.canPresent` が `false` を返す場合）は null です。

例
-

例については `VREyeParameters` 参照してください。

仕様書
---

このインターフェイスは、古い WebVR API の一部でしたが、 WebXR Device API に置き換えられました。標準化される予定はありません。

すべてのブラウザーが新しい WebXR API を実装するまで、すべてのブラウザーで動作する WebXR アプリケーションを開発するには、A-Frame や Babylon.js や Three.js などのフレームワークを利用したり、ポリフィルを利用したりすると良いでしょう [1]。

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

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

関連情報
----

* WebVR API
VRDisplay.isConnected
=====================

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

**`isConnected`** は `VRDisplay` インターフェイスの読み取り専用プロパティで、この `VRDisplay` がコンピューターに接続されているかどうかを示す論理値を返します。

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

### 値

論理値です。 `true` の場合はディスプレイが接続されていることを意味します。 `false` はそうでないことを意味します。

例
-


```js
navigator.getVRDisplays().then(function (displays) {
  // ディスプレイがある場合は、それを使ってシーンを表示する
  if (displays.length > 0) {
    vrDisplay = displays[0];

    // ボタンがクリックされたときに表示を開始。ユーザーのジェスチャーに応答してのみ呼び出すことができます。
    btn.addEventListener("click", function () {
      // ディスプレイが接続されている場合のみ、表示を要求します。
      if (vrDisplay.isConnected) {
        vrDisplay.requestPresent([{ source: canvas }]).then(function () {
          // アプリの描画を開始するなど。
        });
      } else {
        console.log("Connection to display lost");
      }
    });
  }
});
```

仕様書
---

このインターフェイスは、古い WebVR API の一部でしたが、 WebXR Device API に置き換えられました。標準化される予定はありません。

すべてのブラウザーが新しい WebXR API を実装するまで、すべてのブラウザーで動作する WebXR アプリケーションを開発するには、A-Frame や Babylon.js や Three.js などのフレームワークを利用したり、ポリフィルを利用したりすると良いでしょう [1]。

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

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

関連情報
----

* WebVR API
VRDisplay.capabilities
======================

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

**`capabilities`** は `VRDisplay` インターフェイスの読み取り専用プロパティで、 `VRDisplay` の様々な利用可能な機能を示す `VRDisplayCapabilities` オブジェクトを返します。

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

### 値

`VRDisplayCapabilities` オブジェクト。

例
-

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

仕様書
---

このインターフェイスは、古い WebVR API の一部でしたが、 WebXR Device API に置き換えられました。標準化される予定はありません。

すべてのブラウザーが新しい WebXR API を実装するまで、すべてのブラウザーで動作する WebXR アプリケーションを開発するには、A-Frame や Babylon.js や Three.js などのフレームワークを利用したり、ポリフィルを利用したりすると良いでしょう [1]。

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

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

関連情報
----

* WebVR API
VRDisplay.submitFrame()
=======================

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

**`submitFrame()`** は `VRDisplay` インターフェイスのメソッドで、 `VRDisplay` 内に現在表示中の `VRLayerInit` の現在の状態をキャプチャします。

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

その後、 `VRPose` と `getFrameData()` の最後の呼び出しによって提供された行列を使用してフレームがレンダリングされる必要があります。

構文
--


```js
submitFrame();
```

### 引数

なし。

### 返値

なし (`undefined`)。

例
-


```js
var frameData = new VRFrameData();
var vrDisplay;

navigator.getVRDisplays().then(function(displays) {
  vrDisplay = displays[0];
  console.log('Display found');
  // Starting the presentation when the button is clicked: It can only be called in response to a user gesture
  btn.addEventListener('click', function() {
    vrDisplay.requestPresent([{ source: canvas }]).then(function() {
      drawVRScene();
    });
  });
});

// WebVR: Draw the scene for the WebVR display.
function drawVRScene() {
  // WebVR: Request the next frame of the animation
  vrSceneFrame = vrDisplay.requestAnimationFrame(drawVRScene);

  // Populate frameData with the data of the next frame to display
  vrDisplay.getFrameData(frameData);

  // You can get the position, orientation, etc. of the display from the current frame's pose
  var curFramePose = frameData.pose;
  var curPos = curFramePose.position;
  var curOrient = curFramePose.orientation;

  // Clear the canvas before we start drawing on it.

  gl.clear(gl.COLOR\_BUFFER\_BIT | gl.DEPTH\_BUFFER\_BIT);

  // WebVR: Create the required projection and view matrix locations needed
  // for passing into the uniformMatrix4fv methods below

  var projectionMatrixLocation = gl.getUniformLocation(shaderProgram, "projMatrix");
  var viewMatrixLocation = gl.getUniformLocation(shaderProgram, "viewMatrix");

  // WebVR: Render the left eye's view to the left half of the canvas
  gl.viewport(0, 0, canvas.width \* 0.5, canvas.height);
  gl.uniformMatrix4fv(projectionMatrixLocation, false, frameData.leftProjectionMatrix);
  gl.uniformMatrix4fv(viewMatrixLocation, false, frameData.leftViewMatrix);
  drawGeometry();

  // WebVR: Render the right eye's view to the right half of the canvas
  gl.viewport(canvas.width \* 0.5, 0, canvas.width \* 0.5, canvas.height);
  gl.uniformMatrix4fv(projectionMatrixLocation, false, frameData.rightProjectionMatrix);
  gl.uniformMatrix4fv(viewMatrixLocation, false, frameData.rightViewMatrix);
  drawGeometry();

  function drawGeometry() {
    // draw the view for each eye
  }

    ...

  // WebVR: Indicate that we are ready to present the rendered frame to the VR display
  vrDisplay.submitFrame();
}
```


**メモ:** この完全なコードは raw-webgl-example で見ることができます。

仕様書
---

このインターフェイスは、古い WebVR API の一部でしたが、 WebXR Device API に置き換えられました。標準化される予定はありません。

すべてのブラウザーが新しい WebXR API を実装するまで、すべてのブラウザーで動作する WebXR アプリケーションを開発するには、A-Frame や Babylon.js や Three.js などのフレームワークを利用したり、ポリフィルを利用したりすると良いでしょう [1]。

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

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

関連情報
----

* WebVR API
VRDisplay.displayId
===================

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

**`displayId`** は `VRDisplay` インターフェイスの読み取り専用プロパティで、この特定の `VRDisplay` の識別子を返します。これは、 Gamepad API の関連付けポイントとしても使用されます( `Gamepad.displayId` を参照)。

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

### 値

特定の `VRDisplay` の ID を表す数値です。

例
-

例については `VRDisplayCapabilities` を参照してください。

仕様書
---

このインターフェイスは、古い WebVR API の一部でしたが、 WebXR Device API に置き換えられました。標準化される予定はありません。

すべてのブラウザーが新しい WebXR API を実装するまで、すべてのブラウザーで動作する WebXR アプリケーションを開発するには、A-Frame や Babylon.js や Three.js などのフレームワークを利用したり、ポリフィルを利用したりすると良いでしょう [1]。

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

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

関連情報
----

* WebVR API
VRDisplay.depthFar
==================

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

**`depthFar`** は `VRDisplay` インターフェイスのプロパティで、 eye view frustum (ビューフラスタム；つまりシーンの可視領域の境界) の far 平面を定義している z-depth の取得と設定を行います．

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

一般的にはこの値をそのままにしておきますが、低速のコンピューターでパフォーマンスを向上させる場合は、この値を小さくするとよいでしょう。

値
-

double 値で、 z-depth をメートル単位で表します。初期値は `10000.0` です。

例
-


```js
var vrDisplay;

navigator.getVRDisplays().then(function (displays) {
  vrDisplay = displays[0];
  vrDisplay.depthNear = 1.0;
  vrDisplay.depthFar = 7500.0;
});
```

仕様書
---

このインターフェイスは、古い WebVR API の一部でしたが、 WebXR Device API に置き換えられました。標準化される予定はありません。

すべてのブラウザーが新しい WebXR API を実装するまで、すべてのブラウザーで動作する WebXR アプリケーションを開発するには、A-Frame や Babylon.js や Three.js などのフレームワークを利用したり、ポリフィルを利用したりすると良いでしょう [1]。

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

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

関連情報
----

* WebVR API
CSSPageRule.selectorText
========================

**`selectorText`** は `CSSPageRule` インターフェイスのプロパティで、この `CSSPageRule` に関連付けられたセレクターを取得および設定します。

値
-

文字列で宇s。

例
-

このスタイルシートは 2 つの `@page` ルールを含んでいます。 `selectorText` プロパティは、`:first` のセレクターテキストを文字列として返します。


```css
@page {
  margin: 1cm;
}

@page :first {
  margin: 2cm;
}
```



```js
let myRules = document.styleSheets[0].cssRules; // 2 つの myRules を返す
console.log(myRules[1].selectorText); // ":first" という文字列を返す
```

仕様書
---

| Specification |
| --- |
| CSS Object Model (CSSOM) # dom-cssgroupingrule-selectortext |

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

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

**`style`** は `CSSPageRule` インターフェイスの読み取り専用プロパティで、 `CSSStyleDeclaration` オブジェクトを返します。これは CSS 宣言ブロックであるオブジェクトを表し、スタイル情報や様々なスタイル関係のメソッドとプロパティを公開します。

値
-

`CSSStyleDeclaration` オブジェクトで、 CSS 宣言ブロックを以下のプロパティで表します。

computed flag

未設定。

declarations

ルール内で宣言された宣言は、指定された順に、一括指定プロパティを個別指定に展開されます。

parent CSS rule

コンテキストオブジェクト、すなわち this の別名です。

owner node

Null です。

例
-

このスタイルシートは `@page` ルールを含んでいます。ルールのリストを取得し、 style プロパティの値を返すと、`CSSStyleDeclaration` オブジェクトが返されます。


```css
@page {
  margin: 1cm;
}
```



```js
let myRules = document.styleSheets[0].cssRules;
console.log(myRules[0].style); // CSSStyleDeclaration オブジェクトを返す
```

仕様書
---

| Specification |
| --- |
| CSS Object Model (CSSOM) # dom-cssgroupingrule-style |

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

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
Navigation Timing API
=====================

**Navigation Timing API** は、ウェブサイトのパフォーマンス計測に使用できるデータを提供します。同じ目的に使用される他の JavaScript ベースの機構と異なり、この API はエンドツーエンドのさらに役立つ正確な遅延データを提供できます。

以下の例は、知覚できる読み込み時間の計測方法です:
```

function onLoad() {
  var now = new Date().getTime();
  var page_load_time = now - performance.timing.navigationStart;
  console.log("User-perceived page loading time: " + page_load_time);
}
```


数ミリ秒の間に多くの計測イベントが発生し、これらは `PerformanceTiming` インターフェイスを通してアクセスできます。以下は発生順のイベントリストです:

* navigationStart
* unloadEventStart
* unloadEventEnd
* redirectStart
* redirectEnd
* fetchStart
* domainLookupStart
* domainLookupEnd
* connectStart
* connectEnd
* secureConnectionStart
* requestStart
* responseStart
* responseEnd
* domLoading
* domInteractive
* domContentLoadedEventStart
* domContentLoadedEventEnd
* domComplete
* loadEventStart
* loadEventEnd

`window.performance.navigation` オブジェクトは 2 個の属性を格納しており、ページの読み込みが何によって起こされたか (リダイレクト、戻る・進むボタン、通常の URL 読み込み) を知るために使用します。

window.performance.navigation.type:

| 定数 | 値 | 説明 |
| --- | --- | --- |
| `TYPE_NAVIGATE` | 0 | リンクのクリックにより開始されたナビゲーション、ユーザーエージェントのアドレスバーへの URL 入力、フォーム送信、または下記の TYPE\_RELOAD および TYPE\_BACK\_FORWARD の使用によるもの以外のスクリプト操作を通した初期化。 |
| `TYPE_RELOAD` | 1 | 再読み込み操作を通したナビゲーションまたは location.reload() メソッド。 |
| `TYPE_BACK_FORWARD` | 2 | 履歴をたどる操作を通したナビゲーション。 Navigation through a history traversal operation. |
| `TYPE_UNDEFINED` | 255 | 上記に定義されていない形式の任意のナビゲーション。 |

`window.performance.navigation.redirectCount` は、リダイレクトが発生した場合の、最終的なページへ到達するまでの間のリダイレクト数を示します。

Navigation Timing API は、クライアント側でパフォーマンスデータを収集して XHR 経由でサーバーへ送信することに使用できます。また、前のページのアンロード時間やドメインの検索時間、window.onload の合計時間など、計測が困難なデータの計測に使用できます。

例
-

ページの読み込みに必要な合計時間を計算します:
```

var perfData = window.performance.timing;
var pageLoadTime = perfData.loadEventEnd - perfData.navigationStart;
```


リクエストの応答時間を計算します:
```

var connectTime = perfData.responseEnd - perfData.requestStart;
```

### 仕様

* https://w3c.github.io/navigation-timing/
ブラウザーの実装状況
----------

{{Compat}}
FileSystemHandle.requestPermission()
====================================

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

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

`FileSystemHandle` インターフェイスの **`requestPermission()`** メソッドは、ファイルハンドルの読み取りまたは読み書きの許可を要求します。

構文
--


```js
requestPermission(fileSystemHandlePermissionDescriptor)
```

### 引数

FileSystemHandlePermissionDescriptor 省略可

要求する許可のモードを指定するオブジェクトです。以下のオプションが設定可能です。

* : `'mode'`: `'read'` または `'readwrite'` のいずれかの値をとります。

### 返値

`'granted'`、`'denied'`、`'prompt'` のいずれかである `PermissionStatus.state` です。

### 例外

`TypeError`

引数が指定されていないか、`mode` が `'read'` でも `'readwrite'` でもないとき投げられます。

例
-

以下の非同期関数は、許可が与えられていなければ許可を要求します。


```js
// fileHandle は FileSystemFileHandle
// withWrite は書き込みのとき true となる boolean 値

async function verifyPermission(fileHandle, withWrite) {
  const opts = {};
  if (withWrite) {
    opts.mode = "readwrite";
  }

  // 既に許可されているかを確認し、許可されていれば true を返す
  if ((await fileHandle.queryPermission(opts)) === "granted") {
    return true;
  }

  // ファイル操作の許可を要求し、ユーザーが許可したら true を返す
  if ((await fileHandle.requestPermission(opts)) === "granted") {
    return true;
  }

  // ユーザーが許可しなかったので、false を返す
  return false;
}
```

仕様書
---

| Specification |
| --- |
| File System Access # api-filesystemhandle-requestpermission |

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

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

関連情報
----

* File System Access API
* The File System Access API: simplifying access to local files
FileSystemHandle.queryPermission()
==================================

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

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

`FileSystemHandle` インターフェイスの **`queryPermission()`** メソッドは、現在のハンドルの現在の許可の状態を取得します。

構文
--


```js
queryPermission(fileSystemHandlePermissionDescriptor)
```

### 引数

FileSystemHandlePermissionDescriptor 省略可

取得する対象の許可モードを指定するオブジェクトです。以下の設定ができます。

* `'mode'`: `'read'` または `'readwrite'` の値を取りえます。

### 返値

`'granted'`、`'denied'`、`'prompt'` のいずれかの `PermissionStatus.state` です。

`"prompt"` が返った場合は、ウェブサイトはハンドルを用いた操作を行う前に `requestPermission()` を呼ぶ必要があるでしょう。`"denied"` が返った場合は、すべての操作が拒否されるでしょう。通常、ローカルファイルシステムのハンドルファクトリーから返されたハンドルは、初期状態で読み取りの許可状態として `"granted"` を返すでしょう。しかし、ユーザーが許可を取り消した場合以外に、IndexedDB から取得したハンドルも `"prompt"` を返す可能性が高いでしょう。

### 例外

`TypeError`

`mode` が `'read'` でも `'readwrite'` でもない値に設定されたとき投げられます。

例
-

以下の非同期関数は、ユーザーがファイルハンドルに読み取りまたは読み書きの許可を与えた場合 `true` を返します。許可が与えられていない場合、許可を要求します。


```js
// fileHandle は FileSystemFileHandle
// withWrite は書き込みのとき true となる boolean 値

async function verifyPermission(fileHandle, withWrite) {
  const opts = {};
  if (withWrite) {
    opts.mode = "readwrite";
  }

  // 既に許可が得られているかを確認し、許可が得られていれば true を返す
  if ((await fileHandle.queryPermission(opts)) === "granted") {
    return true;
  }

  // ファイル操作の許可を要求し、ユーザーが許可を与えれば true を返す
  if ((await fileHandle.requestPermission(opts)) === "granted") {
    return true;
  }

  // ユーザーが許可しなかったので、false を返す
  return false;
}
```

仕様書
---

| Specification |
| --- |
| File System Access # api-filesystemhandle-querypermission |

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

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

関連情報
----

* File System Access API
* The File System Access API: simplifying access to local files
FileSystemHandle.kind
=====================

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

`FileSystemHandle` の読み取り専用プロパティ **`kind`** は、エントリーの種類を返します。`'file'` (対応するエントリーがファイルである場合) または `'directory'` が返ります。これは、ディレクトリーの中身について反復するとき、ファイルとディレクトリーを区別するために用いられます。

値
-

以下の値を取りうる文字列です。

* `'file'`: ハンドルが `FileSystemFileHandle` の場合
* `'directory'`: ハンドルが `FileSystemDirectoryHandle` の場合
例
-

以下の関数は、ユーザーにファイルピッカーでファイルを選択させ、返されたハンドルがファイルかディレクトリーかを調べます。


```js
// ファイルハンドルへの参照を保存する
let fileHandle;

async function getFile() {
  // ファイルピッカーを開く
  [fileHandle] = await window.showOpenFilePicker();

  if (fileHandle.kind === "file") {
    // ファイルの場合のコードを実行する
  } else if (fileHandle.kind === "directory") {
    // ディレクトリーの場合のコードを実行する
  }
}
```

仕様書
---

| Specification |
| --- |
| File System Standard # ref-for-dom-filesystemhandle-kind① |

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

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

関連情報
----

* File System Access API
* The File System Access API: simplifying access to local files
FileSystemHandle.name
=====================

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

`FileSystemHandle` インターフェイスの読み取り専用プロパティ **`name`** は、ハンドルが表すエントリーの名前を返します。

値
-

文字列です。

例
-

以下の関数は、ユーザーにファイルピッカーでファイルを選択させ、`name` プロパティを取得します。


```js
// ファイルハンドルへの参照を保存する
let fileHandle;

async function getFile() {
  // ファイルピッカーを開く
  [fileHandle] = await window.showOpenFilePicker();

  const fileName = fileHandle.name;
}
```

仕様書
---

| Specification |
| --- |
| File System Standard # ref-for-dom-filesystemhandle-name① |

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

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

関連情報
----

* File System Access API
* The File System Access API: simplifying access to local files
FileSystemHandle.isSameEntry()
==============================

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

`FileSystemHandle` インターフェイスの **`isSameEntry()`** メソッドは、2 個の`ハンドル`を比較し、対応するエントリー (ファイルまたはディレクトリー) が一致するかを確認します。

構文
--


```js
isSameEntry(fileSystemHandle)
```

### 引数

`FileSystemHandle`

メソッドを呼び出すハンドルと比較する `FileSystemHandle` です。

### 返値

エントリーが一致するとき `true` となる `Boolean` を返します。

### 例外

例外は投げられません。

例
-

以下の関数は、1 個のエントリーをエントリーの配列と比較し、一致するエントリーを全て取り除いた新しい配列を返します。


```js
function removeMatches(fileEntry, entriesArr) {
  let newArr = entriesArr.filter((entry) => !fileEntry.isSameEntry(entry));

  return newArr;
}
```

仕様書
---

| Specification |
| --- |
| File System Standard # api-filesystemhandle-issameentry |

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

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

関連情報
----

* File System Access API
* The File System Access API: simplifying access to local files
FileSystemHandle.remove()
=========================

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

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

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

`FileSystemHandle` インターフェイスの **`remove()`** メソッドは、下層のファイルシステムからハンドルが表すエントリーを除去することを要求します。

`remove()` メソッドにより、ハンドルを用いてファイルやディレクトリーを直接削除することができます。このメソッドが無い場合に削除をおこなうには、親ディレクトリーのハンドルを取得し、その親ディレクトリーで `FileSystemDirectoryHandle.removeEntry()` メソッドを呼ぶ必要があるでしょう。

オリジンプライベートファイルシステムのルートディレクトリーで `remove()` を呼ぶことで内容を全消去することもでき、これをおこなった後は新しい空の OPFS が作成されます。

構文
--


```js
remove(options)
```

### 引数

`options` 省略可

削除のオプションを指定するオブジェクトです。以下のプロパティを設定できます。

`recursive` 省略可

`boolean` 値で、デフォルトは `false` です。`true` に設定し、エントリーがディレクトリーである場合は、内容が再帰的に削除されます。


### 返値

`undefined` で解決される `Promise` を返します。

### 例外

`InvalidModificationError` `DOMException`

`recursive` が `false` に設定されており、削除するエントリーが子を持つディレクトリーであるとき投げられます。

`NoModificationAllowedError` `DOMException`

ブラウザーがエントリーの排他的ロックを得られなかったとき投げられます。

`NotAllowedError` `DOMException`

`PermissionStatus` が `granted` でないとき投げられます。

`NotFoundError` `DOMException`

エントリーが見つからないとき投げられます。

例
-

FileSystemHandle.remove() demo (ソースコードを見る) はファイル作成アプリケーションです。`<textarea>` にテキストを入力して "Save file" `<button>` を押すと、ファイルピッカーが開き、入力したテキストをローカルファイルシステム上の選択したテキストファイルに保存できます。作成したファイルを削除することを選択することもできます。

作成したファイルの内容を閲覧することはできず、ページを再読み込みしたり閉じたりすると下層のファイルシステムとの同期は失われます。すなわち、このアプリケーションで作成したファイルは、再読み込みしたりタブを閉じたりする前に削除することを選択しなければ、ファイルシステムに残り続けます。

ファイルピッカー、ファイルハンドル、そして新規ファイルを作成したときのファイル自体は、`window.showSaveFilePicker()` により作成されます。テキストは `FileSystemFileHandle.createWritable()` を用いてファイルに書き込まれます。

ファイルがファイルシステム上に作成されると、アプリケーション上でエントリーが作成されます。(ソースコード中の `processNewFile()` を参照してください)

* 後で簡単に参照できるように、ファイルハンドルへの参照が配列 `savedFileRefs` に格納されます。
* UI の中の "Saved files" という見出しの下に、ファイル名の隣に "Delete" ボタンがあるリストの項目が追加されます。

"Delete" ボタンが押されると、以下の `deleteFile()` 関数が実行されます。


```js
async function deleteFile(e) {
  for (const handle of savedFileRefs) {
    if (handle.name === e.target.id + ".txt") {
      await handle.remove();
      savedFileRefs = savedFileRefs.filter(
        (handle) => handle.name !== e.target.id + ".txt",
      );
      e.target.parentElement.parentElement.removeChild(e.target.parentElement);
    }
  }
}
```


これは以下のような処理です。

1. 配列 `savedFileRefs` に格納されている各ファイルハンドルについて、名前がイベントを発生させたボタンの属性 `id` と一致するかを調べます。
2. 一致するファイルハンドルが見つかったら、そのハンドルについて `FileSystemHandle.remove()` を呼び出し、下層のファイルシステムからそのファイルを削除します。
3. 配列 `savedFileRefs` からも一致したファイルシステムを削除します。
4. 最後に、UI からそのファイルに対応するリスト項目を削除します。
仕様書
---

#### No specification found

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

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

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

関連情報
----

* File System Access API
* FileSystemHandle.remove() demo
CSSStyleDeclaration.length
==========================

読み取り専用のプロパティで、この CSS 宣言ブロックにあるスタイル宣言の数を整数で表します。

値
-

このインスタンスの親に明示的に設定されているスタイルの数を示す整数です。

例
-

次の例は、以下の HTML 要素に明示的に設定されたスタイルの数を取得します。


```html
<div
 id="div1"
 style="margin: 0 10px; background-color: #CA1; font-family: monospace"></div>
```


JavaScript コード:


```js
const myDiv = document.getElementById("div1");
const divStyle = myDiv.style;
const len = divStyle.length; // 6
```

仕様書
---

| Specification |
| --- |
| CSS Object Model (CSSOM) # dom-cssstyledeclaration-length |

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

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

**`cssFloat`** は `CSSStyleDeclaration` インターフェイスのプロパティで、 `CSSStyleDeclaration.getPropertyValue()` を `float` を引数として呼び出したときの結果を返します。

設定したときは、 `CSSStyleDeclaration.setProperty()` を `float` を第一引数、指定された値を第二引数として呼び出します。指定された値は `float` プロパティで有効な値でなければなりません。

値
-

文字列です。

例
-

以下の例では、スタイルシートには、 1 つだけのルール `.box` に `float` プロパティの値が `left` と設定されています。この値は `cssFloat` から返されます。次に、 `cssFloat` を使用して値を "right" に設定し、新しい値を返します。


```css
.box {
  float: left;
  inline-size: 300px;
}
```



```js
let myRules = document.styleSheets[0].cssRules;
let rule = myRules[0];
console.log(rule.style.cssFloat); // "left"
rule.style.cssFloat = "right";
console.log(rule.style.cssFloat); //right
```

仕様書
---

| Specification |
| --- |
| CSS Object Model (CSSOM) # dom-cssstyledeclaration-cssfloat |

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

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

`CSSStyleDeclaration.item()` メソッドインターフェイスは、`CSSStyleDeclaration` の指定した位置の CSS プロパティ名を返します。

このメソッドは、与えた引数によって例外が発生することはありません。位置が範囲外だった場合は空文字列が返され、引数が与えられなかった場合は `TypeError` が発生します。

構文
--


```js
item(index)
```

### 引数

`index`

読み取るノードの位置です。位置は 0 から始まります。

### 返値

文字列で、指定された位置にある CSS プロパティの名前を返します。

JavaScript には、 NodeList から位置を指定して項目を取得するための簡単な特別な構文があります。


```js
const propertyName = style[index];
```

### 例外

`TypeError`

引数が与えられなかった場合に発生します。

例
-


```js
const style = document.getElementById("div1").style;
const propertyName = style.item(1); // または style[1] - リスト中の 2 番目のスタイルを返します
```

仕様書
---

| Specification |
| --- |
| CSS Object Model (CSSOM) # dom-cssstyledeclaration-item |

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

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