自定义事件和postMessage之间的区别

时间:2015-05-12 06:41:48

标签: javascript html5 postmessage custom-events

为了向另一个文档发送消息(让我们说iframe),您可以同时使用postMessagecreateEvent个功能。假设:

var event = document.createEvent('CustomEvent');
event.initCustomEvent("message", true, true, 'Hello world');
iframe.dispatchEvent(event);

我的问题是,如果两种方法都有效,那么使用postMessagecustomEvent之间的区别是什么?

1 个答案:

答案 0 :(得分:7)

让邻居留言要求他们关掉电视,闯入他们的公寓并自己关掉电视是不同的。

您不能将事件分派到不允许通过Same Origin Policy或Access-Control-Allow-Origin访问的帧中,因为某些消息可能会弄乱该页面的工作方式。但是消息是用于不同页面之间的通信 - 如果他们不想收听消息,他们就不必这样做。

另一个区别是消息必须是可序列化的,事件不一定是。