postMessage между вкладками с другим доменом - PullRequest
0 голосов
/ 21 апреля 2019

У меня есть одна вкладка (домен 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, потому что у меня нет возможности его использовать.)?

...