Khi tạo MessageChannel, nó nội bộ tạo ra hai cổng (MessagePort) để gửi dữ liệu và chuyển tiếp sang ngữ cảnh duyệt web khác (ví dụ: giữa các iframe).
Các phương thức chính:
postMessage()- Gửi tin nhắn qua kênh.start()- Bắt đầu truyền dữ liệu (kích hoạt sự kiệnmessage).close()- Đóng các cổng, ngưng truyền.
Ví dụ: Gửi dữ liệu giữa hai iframe
var loadHandler = function() {
var mc, portMessageHandler;
mc = new MessageChannel();
// Gửi port2 cho parent window
window.parent.postMessage('documentAHasLoaded', 'https://foo.example', [mc.port2]);
portMessageHandler = function(portMsgEvent) {
alert(portMsgEvent.data);
};
// Lắng nghe tin nhắn trên port1
mc.port1.addEventListener('message', portMessageHandler, false);
mc.port1.start();
};
window.addEventListener('DOMContentLoaded', loadHandler, false);
Trong ví dụ, iframe con tạo kênh, gửi một cổng cho parent, và lắng nghe tin nhắn trả về trên cổng còn lại.