У меня есть одна вкладка (домен A), которая открывает другую вкладку (домен B), и вкладка A должна иметь возможность общаться в чате с вкладкой B. Это должно работать как в Google Chrome, так и в Mozilla Firefox.
У меня нет возможности использовать Iframe для вкладки B.
Итак, я решил использовать postMessage
для этого:
1) Вкладка A открывает вкладку B.
2) Когда B готово, вкладка B отправляет сообщение на window.opener
(window.opener.postMessage("ready", "*")
).
3) Tab A ожидает его в message event
listener, обрабатывает запрос и отправляет ответные сообщения.
4) Tab B ожидает ее в message event
listener, обрабатывает запрос и отправляет ответные сообщения.
Это прекрасно работает в Google Chrome, но Mozilla Firefox выдает ошибку window.opener is null
.
Я потратил несколько часов на поиск решения, но не нашел подходящего пути для Mozilla Firefox. Очевидно, это вещи безопасности, но почему они отличаются от браузера к браузеру.
Вопросы:
1) Текущий метод может работать в Mozilla Firefox, если я внесу некоторые изменения?
2) Есть ли другие способы связи между вкладками с разными доменами (кроме iframe, потому что у меня нет возможности его использовать.)?