7

メッセージを別のドキュメント ( としましょう) に送信するには、と関数iframeの両方を使用できます。次のように仮定します。postMessagecreateEvent

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

postMessage私の質問は、両方のアプローチが機能する場合、との使用の違いは何customEventですか?

4

1 に答える 1

16

隣人にテレビの音量を下げるようにメッセージを残すことと、アパートに侵入して自分でテレビの音量を下げることの違いです。

Same Origin Policy または Access-Control-Allow-Origin によってアクセスが許可されていないフレームにイベントをディスパッチすることはできません。これは、一部のメッセージがそのページの動作を台無しにする可能性があるためです。ただし、メッセージは異なるページ間の通信を目的としています。メッセージを聞きたくない場合は、聞く必要はありません。

もう 1 つの違いは、メッセージはシリアライズ可能である必要があり、イベントはシリアライズ可能である必要がないことです。

于 2015-05-12T06:49:20.893 に答える