2015-05-12 9 views
3

Чтобы отправить сообщение в другой документ (скажем, iframe), вы можете использовать как функции postMessage, так и createEvent. Предположим, что это:Разница между настраиваемым событием и postMessage

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

Мой вопрос, если оба подхода работают, в чем разница между использованием postMessage и customEvent?

ответ

5

Разница заключается в том, чтобы оставить своего соседа сообщение с просьбой выключить телевизор и проникнуть в их квартиру и выключить телевизор самостоятельно.

Невозможно отправить событие в фрейм, к которому у вас нет доступа по той же политике происхождения или Access-Control-Allow-Origin, поскольку некоторые из сообщений могут испортить работу этой страницы. Но сообщения предназначены для связи между разными страницами - если они не хотят слушать сообщение, им это не нужно.

Другое отличие состоит в том, что сообщения должны быть сериализованы, события не обязательно должны быть.

+0

А что, если мы находимся в одном доменном имени? –

+1

Тогда результаты должны быть похожими. Ваша квартира, ваш телевизор. Не имеет значения, говорите ли вы своему ребенку, чтобы он отказался или сделал это самостоятельно. – Amadan

+0

Awesome. То, что я искал. –

 Смежные вопросы

  • Нет связанных вопросов^_^