为了向另一个文档发送消息(让我们说iframe
),您可以同时使用postMessage
和createEvent
个功能。假设:
var event = document.createEvent('CustomEvent');
event.initCustomEvent("message", true, true, 'Hello world');
iframe.dispatchEvent(event);
我的问题是,如果两种方法都有效,那么使用postMessage
和customEvent
之间的区别是什么?
答案 0 :(得分:7)
让邻居留言要求他们关掉电视,闯入他们的公寓并自己关掉电视是不同的。
您不能将事件分派到不允许通过Same Origin Policy或Access-Control-Allow-Origin访问的帧中,因为某些消息可能会弄乱该页面的工作方式。但是消息是用于不同页面之间的通信 - 如果他们不想收听消息,他们就不必这样做。
另一个区别是消息必须是可序列化的,事件不一定是。