Кажется, что точка window.postMessage - это безопасная связь между окнами/кадрами, размещенными на разных доменах, но на самом деле она не выглядит , которая позволяет, что в Chrome.Как вы используете window.postMessage через домены?
Вот сценарий:
- встраивать <IFrame> (с
src
на домен B *) на странице в домене А - <IFrame> заканчивает тем, что по большей части < сценарий > тег, в конце которого исполнение ...
- Я вызываю window.postMessage (some_data, page_on_A)
<IFrame> наиболее определенно в контексте домена B, и я подтвердил, что встроенный Javascript в этом <IFRAME> выполняет должным образом и вызывает postMessage
с правильными значениями.
Я получаю сообщение об ошибке в Chrome:
Невозможно опубликовать сообщение для . Получатель происхождение B.
Вот код, который регистрирует событие слушателя сообщений на странице, посвященной A:
window.addEventListener(
"message",
function (event) {
// Do something
},
false);
Я также попытался назвать window.postMessage(some_data, '*')
, но все, что делает подавить ошибку.
Я просто пропустил пункт здесь, является window.postMessage (...), не предназначенным для этого? Или я просто делаю это ужасно неправильно?
* Mime-type text/html, который он должен оставаться.
Вы, наверное, знаете об этом уже, но MDC имеет отличное изложение на postMessage: https://developer.mozilla.org/en/DOM/window.postMessage Очевидно, что для реализации FF, возможно, есть что-то, что объясняет, почему это не работает. –