2016-05-27 2 views
0

Я просто пытаюсь получить postmessage из другого окна в своем браузере. Итак, я открыл 2 сайта: example1.com и example2.com. И я открыл хромовые инспекторы на обоих вкладках.Пример postmessage из консоли кросс-домена

В один инспектор я поставил код:

window.addEventListener('message', function(){console.log('FIRED')}) 

В второй:

window.postMessage('Hello!', '*'); 

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

Так что я делаю неправильно?

ответ

2

Вы не можете произвольно отправлять сообщения через вкладки. postMessage method is on window's prototype, поэтому вам нужно иметь действительный Window для публикации.

Если вы отправляете сообщение родительскому или текущему окну текущего окна (и можете использовать window.parent или получить контекст дочернего фрейма) или открыли новое окно и по-прежнему сохраняли ссылку на него, вы можете отправлять сообщения через кадры или вкладки. Однако вы не можете просто публиковать на произвольной вкладке, открытой в том же браузере, поскольку это будет серьезной проблемой безопасности.

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