ServiceWorkerGlobalScope: sự kiện messageerror

Khả dụng hạn chế

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Note: This feature is only available in Service Workers.

Sự kiện messageerror của giao diện ServiceWorkerGlobalScope xảy ra khi các thông điệp đến không thể được giải tuần tự hóa.

Sự kiện này không thể hủy và không nổi bọt.

Cú pháp

Sử dụng tên sự kiện trong các phương thức như addEventListener(), hoặc thiết lập một thuộc tính trình xử lý sự kiện.

js
addEventListener("messageerror", (event) => { })

onmessageerror = (event) => { }

Loại sự kiện

Một ExtendableMessageEvent. Kế thừa từ ExtendableEvent.

Event ExtendableEvent ExtendableMessageEvent

Thuộc tính sự kiện

Kế thừa các thuộc tính từ giao diện cha, ExtendableEvent.

ExtendableMessageEvent.data Read only

Trả về dữ liệu của sự kiện. Nó có thể là bất kỳ kiểu dữ liệu nào. Nếu được gử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 điệp.

ExtendableMessageEvent.lastEventId Read only

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

ExtendableMessageEvent.source Read only

Trả về một tham chiếu đến đối tượng Client đã gửi thông điệp.

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 điệp được liên kết.

Ví dụ

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

js
// main.js
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ể lắng nghe lỗi giải tuần tự hóa thông điệp bằng cách lắng nghe sự kiện messageerror:

js
// service-worker.js
self.addEventListener("messageerror", (event) => {
  // event is an ExtendableMessageEvent object
  console.error("Message deserialization failed");
});

Hoặc, tập lệnh có thể lắng nghe lỗi giải tuần tự hóa thông điệp bằng cách sử dụng onmessageerror:

js
// service-worker.js
self.onmessageerror = (event) => {
  // event is an ExtendableMessageEvent object
  console.error("Message deserialization failed");
};

Đặc tả kỹ thuật

Thông số kỹ thuật
Service Workers Nightly
# eventdef-serviceworkerglobalscope-messageerror
Service Workers Nightly
# dom-serviceworkerglobalscope-onmessageerror

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

Xem thêm