ExtendableMessageEvent

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2018.

Note: This feature is only available in Service Workers.

Giao diện ExtendableMessageEvent của Service Worker API đại diện cho đối tượng sự kiện của sự kiện message được kích hoạt trên một service worker (khi nhận được thông báo trên ServiceWorkerGlobalScope từ ngữ cảnh khác), kéo dài vòng đời của các sự kiện đó.

Giao diện này kế thừa từ giao diện ExtendableEvent.

Event ExtendableEvent ExtendableMessageEvent

Hàm khởi tạo

ExtendableMessageEvent()

Tạo một phiên bản đối tượng ExtendableMessageEvent mới.

Thuộc tính phiên bản

Kế thừa các thuộc tính từ lớp cha, ExtendableEvent.

ExtendableMessageEvent.data Read only

Trả về dữ liệu của sự kiện. Có thể là bất kỳ loại dữ liệu nào. Nếu được phân phối trong sự kiện messageerror, thuộc tính sẽ là null.

ExtendableMessageEvent.origin Read only

Trả về nguồn gốc của Client đã gửi thông báo.

ExtendableMessageEvent.lastEventId Read only

Trong server-sent events, đại diện cho ID sự kiện cuối cùng của nguồn sự kiện.

ExtendableMessageEvent.source Read only

Trả về tham chiếu đến đối tượng Client đã gửi thông báo.

ExtendableMessageEvent.ports Read only

Trả về mảng chứa các đối tượng MessagePort đại diện cho các cổng của kênh thông báo liên kết.

Phương thức phiên bản

Kế thừa các phương thức từ lớp cha, ExtendableEvent.

Ví dụ

Trong ví dụ dưới đây, một trang lấy handle đến đối tượng ServiceWorker qua ServiceWorkerRegistration.active, rồi gọi hàm postMessage() của nó.

js
// in the page being controlled
if (navigator.serviceWorker) {
  navigator.serviceWorker.register("service-worker.js");

  navigator.serviceWorker.addEventListener("message", (event) => {
    // event is a MessageEvent object
    console.log(`The service worker sent me a message: ${event.data}`);
  });

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

Service worker có thể nhận thông báo bằng cách lắng nghe sự kiện message:

js
// in the service worker
addEventListener("message", (event) => {
  // event is an ExtendableMessageEvent object
  console.log(`The client sent me a message: ${event.data}`);

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

Thông số kỹ thuật

Specification
Service Workers Nightly
# extendablemessageevent-interface

Tương thích trình duyệt

Xem thêm