recursal/MDN huggingface dataset:
StylePropertyMapReadOnly.size
=============================

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

**`size`** は `StylePropertyMapReadOnly` インターフェイスの読み取り専用プロパティで、 `StylePropertyMapReadOnly` オブジェクトの大きさを符号なし長整数で返します。

構文
--


```js
var size = StylePropertyMapReadOnly.size;
```

### 値

符号なし長整数です。

例
-

ここでは size プロパティを使用して、この button 要素の `computedStyleMap` に含まれる項目の数を返します。


```js
// 要素を取得
const buttonEl = document.querySelector("button");

// `computedStyleMap` ですべての計算済みスタイルが取得できます
const allComputedStyles = buttonEl.computedStyleMap();

// size を使用してマップ内にあるスタイルの数を取得します
const amountStyles = allComputedStyles.size;
console.log(amountStyles); // 338 と表示
```

仕様書
---

| Specification |
| --- |
| CSS Typed OM Level 1 # dom-stylepropertymapreadonly-size |

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

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

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

**`StylePropertyMapReadOnly.keys()`** メソッドは、 `StylePropertyMapReadOnly` の各項目のキーを含む新しい*配列イテレーター*を返します。

構文
--


```js
StylePropertyMapReadOnly.keys();
```

### 引数

なし。

### 返値

新しい `Array` です。

例
-

この例では、 `keys()` メソッドを使用して `Element.computedStyleMap()` の中にあるプロパティにアクセスすることができます。


```js
// button 要素を取得
const buttonEl = document.querySelector("button");

// すべての計算済みスタイルを `computedStyleMap` で受け取る
const allComputedStyles = buttonEl.computedStyleMap();

// keys はプロパティの反復可能なリストを返す
const props = allComputedStyles.keys();
console.log(props.next().value); // align-content を返す
```

仕様書
---

#### No specification found

No specification data found for `api.StylePropertyMapReadOnly.keys`.  
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.
StylePropertyMapReadOnly.forEach()
==================================

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

**`StylePropertyMapReadOnly.forEach()`** メソッドは、指定された関数を `StylePropertyMapReadOnly` のそれぞれの要素に対して 1 回ずつ呼び出します。

構文
--


```js
StylePropertyMapReadOnly.forEach(function callback(currentValue[, index[, array]]) {
    //コード
}[, thisArg]);
```

### 引数

`callback`

それぞれの要素に対して呼び出す関数であり、 3 つの引数を取ります。

`currentValue`

処理しようとしている現在の要素の値です。

`index`省略可

処理しようとしている現在の要素の位置です。

`array`省略可

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


`thisArg` 省略可

`callback` を実行するときに **`this`** として使用する値（すなわち、 `Object` への参照）です。

### 返値

`undefined` です。

例
-

こちらは、 `forEach()` を `Element.computedStyleMap()` の結果に対して使用する例です。


```js
// button 要素を取得
const buttonEl = document.querySelector(".example");

// `computedStyleMap` ですべての計算済みスタイルが取得できます
const allComputedStyles = buttonEl.computedStyleMap();

// forEach ですべてのプロパティ/値の組に対してコードを実行することができます
allComputedStyles.forEach((elem, index, arr) => {
  // code to run for each pair
});
```

仕様書
---

#### No specification found

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

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

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

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

`GeolocationCoordinates` インターフェイスの **`longitude`** プロパティは読み取り専用であり、地理的な位置の経度 10 進数で表す倍精度浮動小数点値です。
 Unix 時刻として提供される、計測時刻を表すタイムスタンプ共に、 `GeolocationCoordinates` オブジェクトは `GeolocationPosition` インターフェイスの一部であり、位置位置を取得して返す位置情報 API 関数が返すオブジェクト型です。

値
-

`longitude` の値は `Coordinates` オブジェクトによって記述された地球上の場所の地理的な経度を 10 進数で表したものです。この値は World Geodetic System 1984 仕様 (WGS 84) で定義されています。

**メモ:** ゼロ子午線（本初子午線、基準子午線とも呼ばれる）は、多くの人が思い浮かべるグリニッジ子午線と正確には同じではありません。これは IERS 基準子午線 であり、 5.3 秒 （102 メートル/335 フィート）だけグリニッジ子午線より東に位置しています。これはグローバルポジショニングシステム (GPS) で使われている規格と同じものです。

例
-

この単純な例では、ユーザーの位置情報を取得し、その結果の座標を表示します。

### JavaScript

以下の JavaScript コードでは、ユーザーがボタンをクリックすると、位置情報を取得して表示するように、イベントリスナーを作成しています。


```js
let button = document.getElementById("get-location");
let latText = document.getElementById("latitude");
let longText = document.getElementById("longitude");

button.addEventListener("click", () => {
  navigator.geolocation.getCurrentPosition((position) => {
    let lat = position.coords.latitude;
    let long = position.coords.longitude;

    latText.innerText = lat.toFixed(2);
    longText.innerText = long.toFixed(2);
  });
});
```


ボタン要素と緯度経度が描画される 2 つの要素をより参照しやすくするための変数を設定した後、 `addEventListener()` を `<button>` 要素で呼び出してイベントリスナーを確立しています。ユーザーがボタンをクリックすると、位置情報を取得して表示するようにします。

`click` イベントを受信すると、`getCurrentPosition()` を呼び出し、端末の現在位置を要求しています。これは非同期のリクエストなので、決定した位置を表す `GeolocationPosition` オブジェクトを put で受け取るコールバックを用意します。

`GeolocationPosition` オブジェクトから、 `position.coords.latitude` と `position.coords.longitude` を用いてユーザーの緯度と経度を取得し、表示される座標を更新できるようにします。 2 つの`<span>`要素は、小数点以下2桁の値に変換された後、対応する値を表示するように更新されます。

### HTML

結果を表示するための HTML は次のようになります。


```html
<p>
  あなたの位置は北緯 <span id="latitude">0.00</span>° 東経
  <span id="longitude">0.00</span>° です。
</p>
<button id="get-location">現在の位置を取得</button>
```

### 結果

この例を、ここで試しに実行してみてください。

仕様書
---

| Specification |
| --- |
| Geolocation API # latitude-longitude-and-accuracy-attributes |

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

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

関連情報
----

* 位置情報 API の使用
* 所属先の `GeolocationCoordinates` インターフェイス
* `GeolocationPosition` インターフェイス、位置情報 API の関数 `Geolocation.getCurrentPosition()` および `watchPosition()` から位置情報データを返すために用いられる最上位のインターフェイス。
GeolocationCoordinates: speed プロパティ
===================================

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

**`GeolocationCoordinates.speed`** は読み取り専用のプロパティであり、 `double` 型で端末の移動速度をメートル毎秒で表します。実装でこれを計測することができなければ、この値は `null` になります。

値
-

`double` 型で端末の移動速度をメートル毎秒で表します。

仕様書
---

| Specification |
| --- |
| Geolocation API # speed-attribute |

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

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

関連情報
----

* 位置情報 API の使用
* `GeolocationCoordinates`
GeolocationCoordinates: latitude プロパティ
======================================

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

**`GeolocationCoordinates.latitude`** は読み取り専用のプロパティであり、 `double` 値でその位置の緯度を 10 進形式で表します。

値
-

`double` 値でその位置の緯度を 10 進形式で表します。

仕様書
---

| Specification |
| --- |
| Geolocation API # latitude-longitude-and-accuracy-attributes |

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

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

関連情報
----

* 位置情報 API の使用
* `GeolocationCoordinates`
GeolocationCoordinates: heading プロパティ
=====================================

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

**`GeolocationCoordinates.heading`** は読み取り専用のプロパティであり、 `double` 値で端末の移動方向を表します。この値は角度で指定され、端末の移動方向が北向きからどれだけ角度があるかを示します。 `0` 度は真北を表し、そこから時計回りに指定します（すなわち、東は `90` 度で西は `270` 度になります）。 `GeolocationCoordinates.speed` が `0` である場合、 `heading` は `NaN` になります。端末が移動方向の情報を提供できない場合、この値は `null` になります。

値
-

`double` 値で端末の移動方向を表します。

仕様書
---

| Specification |
| --- |
| Geolocation API # heading-attribute |

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

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

関連情報
----

* 位置情報 API の使用
* `GeolocationCoordinates`
GeolocationCoordinates: accuracy プロパティ
======================================

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

**`GeolocationCoordinates.accuracy`** は読み取り専用プロパティで、厳密な正の `double` 値で、信頼度 95% の `GeolocationCoordinates.latitude` および
 `GeolocationCoordinates.longitude` の精度をメートル単位で表します。

値
-

 正の `double` 値で、信頼度 95% の `GeolocationCoordinates.latitude` および
 `GeolocationCoordinates.longitude` の精度をメートル単位で表します。

仕様書
---

| Specification |
| --- |
| Geolocation API # latitude-longitude-and-accuracy-attributes |

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

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

関連情報
----

* 位置情報 API の使用
* `GeolocationCoordinates`
GeolocationCoordinates: altitude プロパティ
======================================

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

**`GeolocationCoordinates.altitude`** は読み取り専用のプロパティであり、 `double` 値で、その位置の WGS84 楕円体（公称海面水準を定義するもの）からの高度をメートル単位で表します。この値は、実装がこのデータを提供できない場合は `null` となります。

値
-

`double` 値で、その位置の WGS84 楕円体（公称海面レベルを定義するもの）からの高度をメートル単位で表します。

仕様書
---

| Specification |
| --- |
| Geolocation API # altitude-and-altitudeaccuracy-attributes |

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

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

関連情報
----

* 位置情報 API の使用
* 所属先の `GeolocationCoordinates` インターフェイス
* National Imagery and Mapping Agency Technical Report 8350.2, Third Edition (WGS84)
GeolocationCoordinates: altitudeAccuracy プロパティ
==============================================

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

**`GeolocationCoordinates.altitudeAccuracy`** は読み取り専用のプロパティで、厳密な正の `double` 値で、信頼度 95% の `altitude` の精度をメートル単位で表します。実装が高度の計測に対応していない場合、この値は `null` になります。

値
-

正の `double` 値で、信頼度 95% の `altitude` の精度をメートル単位で表します。

仕様書
---

| Specification |
| --- |
| Geolocation API # altitude-and-altitudeaccuracy-attributes |

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

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

関連情報
----

* 位置情報 API の使用
* `GeolocationCoordinates`
DecompressionStream.writable
============================

`DecompressionStream` インターフェイスの読み取り専用プロパティ **`writable`** は、`WritableStream` を返します。

値
-

`WritableStream` です。

例
-

この例では、`DecompressionStream` から `WritableStream` を返します。


```js
let stream = new DecompressionStream("gzip");
console.log(stream.writeable); // WritableStream
```

仕様書
---

| Specification |
| --- |
| Streams Standard # dom-generictransformstream-writable |

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

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

**`DecompressionStream()`** コンストラクターは、データのストリームを展開する新しい `DecompressionStream` オブジェクトを生成します。

構文
--


```js
new DecompressionStream(format)
```

### 引数

`format`

以下の圧縮形式のうちのいずれかです。

* `"gzip"`
* `"deflate"`
* `"deflate-raw"`

例外
--

`TypeError`

コンストラクターに渡された形式がサポートされていないとき投げられます。

例
-

この例では、blob を gzip 圧縮を用いて展開します。


```js
const ds = new DecompressionStream("gzip");
const decompressedStream = blob.stream().pipeThrough(ds);
```

仕様書
---

| Specification |
| --- |
| Compression Streams # dom-decompressionstream-decompressionstream |

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

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

`DecompressionStream` インターフェイスの読み取り専用プロパティ **`readable`** は、`ReadableStream` を返します。

値
-

`ReadableStream` です。

例
-

この例では、`DecompressionStream` から `ReadableStream` を返します。


```js
let stream = new DecompressionStream("gzip");
console.log(stream.readable); // ReadableStream
```

仕様書
---

| Specification |
| --- |
| Streams Standard # dom-generictransformstream-readable |

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

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

**`XRReferenceSpaceType`** 列挙型は、WebXR がサポートしている参照空間のタイプを識別する文字列を定義します。 このタイプは、`requestReferenceSpace()` メソッドを呼び出して `XRSession` (en-US) の参照空間を取得するときに使用します。

値
-

`XRSession.requestReferenceSpace()` によって返される参照空間は、`XRReferenceSpace` または `XRBoundedReferenceSpace` のいずれかです。 以下の表の「インターフェイス」列は、各参照空間タイプ定数に対して 2 つの型のどちらが返されるかを示しています。

### 参照空間記述子

参照空間のタイプを以下の表に示します。 それらのユースケースと、それらを実装するために使用されるインターフェイスについての簡単な情報が含まれています。

| XRReferenceSpaceType | 説明 | インターフェイス |
| --- | --- | --- |
| `bounded-floor` | `local` タイプと同様ですが、返されたオブジェクトの `boundsGeometry` によって指定された所定の境界の外にユーザーが移動することは想定されていません。 | `XRBoundedReferenceSpace` |
| `local` | セッションが作成されたときのネイティブの原点がビューアーの位置の近くにある追跡空間。 正確な位置は、基盤となるプラットフォームと実装によって異なります。 ユーザーは、開始位置を超えて移動することはあまり想定されておらず、この使用例に合わせて追跡が最適化されています。6 自由度（6DoF）追跡のデバイスの場合、`local` 参照空間は、環境に対して原点を安定させようとします。 | `XRReferenceSpace` |
| `local-floor` | `local` タイプと同様ですが、開始位置は、ビューアーが立つことができる安全な場所に配置され、y 軸の値は床レベルで 0 です。 その床レベルがわからない場合、ユーザーエージェントは床レベルを推定します。 推定床レベルがゼロ以外の場合、ブラウザーはフィンガープリントを回避するような方法で丸めることが期待されます（最も近いセンチメートルまで）。 | `XRReferenceSpace` |
| `unbounded` | おそらく原点から非常に長い距離にわたって、ユーザーが自由に移動できる追跡空間。 ビューアーはまったく追跡されません。 追跡は、ユーザーの現在位置周辺の安定性のために最適化されているため、ネイティブの原点は、そのニーズに対応するために必要に応じてドリフトする可能性があります。 | `XRReferenceSpace` |
| `viewer` | ネイティブの原点がビューアーの位置と向きを追跡する追跡空間。 これは、ユーザーが物理的に移動できる環境で使用し、没入型（immersive）とインライン（inline）の両方の `XRSession` (en-US) のすべてのインスタンスをサポートしますが、インラインセッションで最も役立ちます。 ビューアーと入力の間の距離を決定するとき、またはオフセット空間を操作するときに特に役立ちます。 そうでない場合、通常、他の参照空間タイプの 1 つがより頻繁に使用されます。 | `XRReferenceSpace` |

仕様
--

| Specification |
| --- |
| WebXR Device API # dom-xrsession-requestreferencespace |

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

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

**`notificationclose`** イベントは、 `ServiceWorkerRegistration.showNotification()` によって生成された表示中の通知をユーザーが閉じたときに発生します。

メインスレッドや、サービスワーカー以外のワーカーが `Notification()` コンストラクターを使用して生成した通知では、`Notification` オブジェクト自身が `close` イベントを受け取ります。

**メモ:** `ServiceWorkerGlobalScope` 内で `Notification()` コンストラクターを使用して通知を生成しようとすると、エラーが発行されます。

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

構文
--

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


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

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

イベント型
-----

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

Event

ExtendableEvent

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

*親である `Event` からプロパティを継承しています*。

`NotificationEvent.notification` 読取専用 

クリックされイベントが発行された通知を表す `Notification` オブジェクトを返します。

`NotificationEvent.action` 読取専用 

ユーザーがクリックした通知ボタンの文字列 ID を返します。この値は、ユーザーがアクションボタン以外のどこかで通知をクリックした場合、またはその通知にボタンがなかった場合、空文字列を返します。

例
-


```js
// サービスワーカーの内部で
self.onnotificationclose = (event) => {
  console.log("On notification close: ", event.notification.tag);
};
```

仕様書
---

| Specification |
| --- |
| Notifications API Standard # dom-serviceworkerglobalscope-onnotificationclose |

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

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

**`sync`** は `ServiceWorkerGlobalScope` インターフェイスのイベントで、 `SyncManager` にイベントを登録したページ（またはワーカー）が実行されているとき、ネットワーク接続が利用できるようになるとすぐに発行されます。

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

構文
--

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


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

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

イベント型
-----

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

Event

ExtendableEvent

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

*祖先である `Event` からプロパティを継承しています*。

`SyncEvent.tag` 読取専用 

この `SyncEvent` の開発者が定義した識別子を返します。

`SyncEvent.lastChance` 読取専用 

ユーザーエージェントが現在の同期を試行した後、それ以上同期を試行しない場合には `true` を返します。

例
-

以下の例は、サービスワーカーで同期イベントに応答する方法を示しています。


```js
self.addEventListener("sync", (event) => {
  if (event.tag === "sync-messages") {
    event.waitUntil(sendOutboxMessages());
  }
});
```


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


```js
self.onsync = (event) => {
  // ...
};
```

仕様書
---

| Specification |
| --- |
| Web Background Synchronization # dom-serviceworkerglobalscope-onsync |

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

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

関連情報
----

* Richer offline experiences with the Periodic Background Sync API
* A Periodic Background Sync demo app
ServiceWorkerGlobalScope: push イベント
===================================

**`push`** イベントは、サービスワーカーがプッシュメッセージを受信したときにサービスワーカーのグローバルスコープ (`ServiceWorkerGlobalScope` インターフェイスで表現されるもの) に送られます。

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

構文
--

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


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

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

イベント型
-----

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

Event

ExtendableEvent

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

*祖先である `ExtendableEvent` からプロパティを継承しています*。

`PushEvent.data` 読取専用 

`PushMessageData` オブジェクトへの参照を返します。これには `PushSubscription` に送られたデータが含まれています。

例
-

この例では、JSON データを受け取り、解釈し、メッセージに含まれる情報に基づいて処理するためにメッセージを送出する `push` イベント用のハンドラーを設定します。


```js
self.addEventListener(
  "push",
  (event) => {
    let message = event.data.json();

    switch (message.type) {
      case "init":
        doInit();
        break;
      case "shutdown":
        doShutdown();
        break;
    }
  },
  false,
);
```

仕様書
---

| Specification |
| --- |
| Push API # extensions-to-the-serviceworkerglobalscope-interface |
| Push API # dom-serviceworkerglobalscope-onpush |

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

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

関連情報
----

* プッシュ API の使用
* `pushsubscriptionchange` イベント
ServiceWorkerGlobalScope: contentdelete イベント
============================================

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

**`contentdelete`** は `ServiceWorkerGlobalScope` インターフェイスのイベントで、ユーザーエージェントを通じて索引付けされたコンテンツから項目が削除されたときに発行されます。

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

構文
--

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


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

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

イベント型
-----

`ContentIndexEvent` (en-US) です。 `Event` を継承しています。

Event

ExtendableEvent

ContentIndexEvent

(en-US)イベントプロパティ
---------

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

`id` (en-US) 読取専用 

削除されたコンテンツのインデックスを `id` で識別する文字列。

例
-

以下の例では、`contentdelete` イベントハンドラーを使用して、削除されたインデックス項目に関連するキャッシュされたコンテンツを削除しています。


```js
self.addEventListener("contentdelete", (event) => {
  const deletion = caches
    .open("cache-name")
    .then((cache) =>
      Promise.all([
        cache.delete(`/icon/${event.id}`),
        cache.delete(`/content/${event.id}`),
      ]),
    );
  event.waitUntil(deletion);
});
```


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


```js
self.oncontentdelete = (event) => {
  // ...
};
```

仕様書
---

| Specification |
| --- |
| Content Index # dom-serviceworkerglobalscope-oncontentdelete |

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

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

関連情報
----

* コンテンツ索引 API (en-US)
* An introductory article on the Content Index API
* An app which uses the Content Index API to list and remove 'save for later' content
ServiceWorkerGlobalScope: message イベント
======================================

**`message`** は `ServiceWorkerGlobalScope` インターフェイスのイベントで、着信メッセージを受信したときに発生します。 制御されたページは、 `ServiceWorker.postMessage()` メソッドを使用して、サービスワーカーにメッセージを送信することができます。
 サービスワーカーは、任意で、制御されたページに対応する `Client.postMessage()` を介して返信することができます。

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

構文
--

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


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

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

イベント型
-----

`ExtendableMessageEvent` です。 `ExtendableEvent` を継承しています。

Event

ExtendableEvent

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

*親である `ExtendableEvent` からプロパティを継承しています*。

`ExtendableMessageEvent.data` 読取専用 

イベントのデータを返します。任意のデータ型にすることができます。

`ExtendableMessageEvent.origin` 読取専用 

メッセージを送信した `Client` のオリジンを返します。

`ExtendableMessageEvent.lastEventId` 読取専用 

サーバー送信イベントにおいて、イベントソースの最後のイベント ID を表します。これは空文字列です。

`ExtendableMessageEvent.source` 読取専用 

メッセージを送信した `Client` オブジェクトへの参照を返します。

`ExtendableMessageEvent.ports` 読取専用 

関連するメッセージチャネルのポートを表す `MessagePort` オブジェクトを含む配列を返します。

例
-

以下の例では、ページが `ServiceWorkerRegistration.active` を介して `ServiceWorker` オブジェクトへのハンドルを取得し、その `postMessage()` 関数を呼び出します。


```js
// 制御されているページ内
if (navigator.serviceWorker) {
  navigator.serviceWorker.register("service-worker.js");

  navigator.serviceWorker.addEventListener("message", (event) => {
    // event は MessageEvent オブジェクトです
    console.log(`The service worker sent me a message: ${event.data}`);
  });

  navigator.serviceWorker.ready.then((registration) => {
    registration.active.postMessage("Hi service worker");
  });
}
```


サービスワーカーは、次のようにして "message" イベントを待ち受けすることでメッセージを受け取ることができます。


```js
// サービスワーカー内
addEventListener("message", (event) => {
  // event は ExtendableMessageEvent オブジェクトです
  console.log(`The client sent me a message: ${event.data}`);

  event.source.postMessage("Hi client");
});
```


また、スクリプトは `onmessage` を使用してメッセージを待ち受けすることもできます。


```js
// service-worker.js
self.onmessage = (event) => {
  // event は ExtendableMessageEvent オブジェクトです
  console.log(`The client sent me a message: ${event.data}`);

  event.source.postMessage("Hi client");
};
```

仕様書
---

| Specification |
| --- |
| Service Workers # eventdef-serviceworkerglobalscope-message |
| Service Workers # dom-serviceworkerglobalscope-onmessage |

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

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

関連情報
----

* サービスワーカーの使用
* サービスワーカーの基本的なコード例（英語）
* ServiceWorker の準備はできていますか？（英語）
* ウェブワーカーの使用
ServiceWorkerGlobalScope.registration
=====================================

**`registration`** は `ServiceWorkerGlobalScope` インターフェイスの読み取り専用プロパティで、サービスワーカーの登録を表す `ServiceWorkerRegistration` オブジェクトの参照を返します。

値
-

`ServiceWorkerRegistration` オブジェクト。

仕様書
---

| Specification |
| --- |
| Service Workers # service-worker-global-scope-registration |

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

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

関連情報
----

* サービスワーカーの使用
* サービスワーカーの基本的なコード例
* Is ServiceWorker ready?
* `Promise`
* ウェブワーカーの使用
ServiceWorkerGlobalScope: activate イベント
=======================================

**`activate`** は `ServiceWorkerGlobalScope` インターフェイスのイベントで、`ServiceWorkerRegistration` が新しいアクティブワーカー（`ServiceWorkerRegistration.active` worker）を取得すると発生します。

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

構文
--

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


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

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

イベント型
-----

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

Event

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

*固有のプロパティは実装していませんが、親である `Event` からプロパティを継承しています。*

例
-

次のスニペットは、`activate` イベントハンドラーを使用してキャッシュをアップグレードする方法を示しています。


```js
globalScope.addEventListener("activate", (event) => {
  const cacheAllowlist = ["v2"];

  event.waitUntil(
    caches.forEach((cache, cacheName) => {
      if (!cacheAllowlist.includes(cacheName)) {
        return caches.delete(cacheName);
      }
    }),
  );
});
```


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


```js
globalScope.onactivate = (event) => {
  // ...
};
```

仕様書
---

| Specification |
| --- |
| Service Workers # service-worker-global-scope-activate-event |
| Service Workers # dom-serviceworkerglobalscope-onactivate |

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

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

関連情報
----

* `install` イベント
* `ServiceWorkerGlobalScope`
* サービスワーカー API