文档上看只有postmessage和onmessage是window的方法,但好像还有其他对象有这两个方法,比如 web work。还有其他对象有的吗?
文档上看只有postmessage和onmessage是window的方法,但好像还有其他对象有这两个方法,比如 web work。还有其他对象有的吗?
postMessage()
和 onmessage
是 Web API
中的方法和事件,用于在不同的窗口或框架之间进行跨域通信。除了浏览器窗口和框架(包括 iframe
)之外,其他一些对象也可以使用这两个方法和事件进行跨域通信。以下是一些支持 postMessage()
和 onmessage
的对象:
Web Workers
: postMessage()
和 onmessage
也可以在 Web Workers
中使用,用于在 worker 线程和主线程之间进行通信。Service Workers
: postMessage()
和 onmessage
也可以在 Service Workers
中使用,用于在 Service Workers
和网页之间进行通信。MessageChannel API
: MessageChannel API
是一个新的 Web API
,用于创建双向通信通道,允许不同的上下文进行通信。它也支持 postMessage()
和 onmessage
方法和事件。 WebSockets
: WebSockets
是一种基于 TCP
协议的双向通信技术,也支持 send()
方法和 onmessage
事件,用于在客户端和服务器之间进行实时通信。总之,任何支持 JavaScript
的对象都可以使用 postMessage()
和 onmessage
进行跨域通信,只要它们实现了这些方法和事件。
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
6 回答3.1k 阅读✓ 已解决
8 回答4.8k 阅读✓ 已解决
6 回答3.6k 阅读✓ 已解决
5 回答2.9k 阅读✓ 已解决
6 回答2.5k 阅读
5 回答6.4k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
iframe与EventSource创建的对象也是有的:
https://www.w3school.com.cn/jsref/event_onmessage_sse.asp