MessageChannel: port2 property

Baseline Widely available

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

Note: This feature is available in Web Workers.

Thuộc tính chỉ đọc port2 của giao diện MessageChannel trả về cổng thứ hai của kênh tin nhắn, là cổng được gắn với ngữ cảnh ở đầu kia của kênh, nơi tin nhắn ban đầu được gửi đến.

Giá trị

Một đối tượng MessagePort đại diện cho cổng thứ hai của kênh, gắn với ngữ cảnh ở đầu kia của kênh.

Ví dụ

Trong đoạn mã sau, bạn có thể thấy một kênh mới được tạo bằng hàm khởi tạo MessageChannel(). Khi IFrame đã tải, chúng ta truyền port2 đến IFrame bằng Window.postMessage() cùng với một tin nhắn. Trình xử lý handleMessage phản hồi tin nhắn gửi lại từ IFrame (bằng onmessage), đưa nó vào một đoạn văn. port1 được lắng nghe để kiểm tra khi tin nhắn đến.

js
const channel = new MessageChannel();
const para = document.querySelector("p");

const ifr = document.querySelector("iframe");
const otherWindow = ifr.contentWindow;

ifr.addEventListener("load", iframeLoaded);

function iframeLoaded() {
  otherWindow.postMessage("Hello from the main page!", "*", [channel.port2]);
}

channel.port1.onmessage = handleMessage;
function handleMessage(e) {
  para.innerHTML = e.data;
}

Để xem ví dụ đầy đủ, hãy xem channel messaging basic demo trên GitHub (chạy trực tiếp).

Thông số kỹ thuật

Thông số kỹ thuật
HTML
# dom-messagechannel-port2-dev

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

Xem thêm