diff --git a/files/ja/web/api/notificationevent/index.md b/files/ja/web/api/notificationevent/index.md index 7b8bb924b7ffcd..0d9779d6f69f45 100644 --- a/files/ja/web/api/notificationevent/index.md +++ b/files/ja/web/api/notificationevent/index.md @@ -1,40 +1,43 @@ --- title: NotificationEvent slug: Web/API/NotificationEvent +l10n: + sourceCommit: aa8fa82a902746b0bd97839180fc2b5397088140 --- -{{APIRef("Web Notifications")}} +{{APIRef("Web Notifications")}}{{AvailableInWorkers("service")}} -{{domxref("ServiceWorkerGlobalScope.onnotificationclick", "onnotificationclick")}} ハンドラーに渡される引数である `NotificationEvent` インターフェイスは、 {{domxref("ServiceWorker")}} の {{domxref("ServiceWorkerGlobalScope")}} で配信される通知クリックイベントを表します。 +**`NotificationEvent`** は{{domxref("Notifications API", "通知 API", "", "nocode")}}のインターフェイスで、サービスワーカー ({{domxref("ServiceWorker")}}) の {{domxref("ServiceWorkerGlobalScope")}} で配信される通知イベントを表します。 このインターフェイスは {{domxref("ExtendableEvent")}} インターフェイスを継承しています。 +> **メモ:** {{domxref("ServiceWorkerGlobalScope")}} オブジェクトで発行される持続的な通知イベントのみが、`NotificationEvent`インターフェイスを実装します。{{domxref("Notification")}} オブジェクトで発行される非持続的な通知イベントは、`Event`インターフェイスを実装します。 + +{{InheritanceDiagram}} + ## コンストラクター - {{domxref("NotificationEvent.NotificationEvent","NotificationEvent()")}} - : 新しい `NotificationEvent` オブジェクトを作成します。 -## プロパティ +## インスタンスプロパティ -_祖先である {{domxref("Event")}} からプロパティを継承しています。_ +_親インターフェイスである {{domxref("ExtendableEvent")}} から継承したプロパティもあります。_ -- {{domxref("NotificationEvent.notification")}} {{readonlyInline}} +- {{domxref("NotificationEvent.notification")}} {{ReadOnlyInline}} - : イベントを発生させるためにクリックされた通知を表す {{domxref("Notification")}} オブジェクトを返します。 -- {{domxref("NotificationEvent.action")}} {{readonlyinline}} +- {{domxref("NotificationEvent.action")}} {{ReadOnlyInline}} - : ユーザーがクリックした通知ボタンの文字列 ID を返します。ユーザーがアクションボタン以外の場所で通知をクリックした場合、または通知にボタンがない場合、この値は空の文字列を返します。 -## メソッド +## インスタンスメソッド -_親の {{domxref("ExtendableEvent")}} からメソッドを継承しています。_ - -- {{domxref("ExtendableEvent.waitUntil", "ExtendableEvent.waitUntil()")}} - - : イベントの存続期間を延長します。作業が進行中であることをブラウザーに伝えます。 +_親インターフェイスである {{domxref("ExtendableEvent")}} から継承したメソッドもあります。_ ## 例 ```js -self.addEventListener("notificationclick", function (event) { - console.log("On notification click: ", event.notification.tag); +self.addEventListener("notificationclick", (event) => { + console.log(`On notification click: ${event.notification.tag}`); event.notification.close(); // これは、現在のページが既に開いているかどうかを確認し、 @@ -44,10 +47,9 @@ self.addEventListener("notificationclick", function (event) { .matchAll({ type: "window", }) - .then(function (clientList) { - for (var i = 0; i < clientList.length; i++) { - var client = clientList[i]; - if (client.url == "/" && "focus" in client) return client.focus(); + .then((clientList) => { + for (const client of clientList) { + if (client.url === "/" && "focus" in client) return client.focus(); } if (clients.openWindow) return clients.openWindow("/"); }), @@ -59,6 +61,9 @@ self.addEventListener("notificationclick", function (event) { {{Specifications}} +> [!NOTE] +> このインターフェイスは[通知 API](/ja/docs/Web/API/Notifications_API) で定義されていますが、{{domxref("ServiceWorkerGlobalScope")}} を通してアクセスします。 + ## ブラウザーの互換性 {{Compat}}