Как получить ссылку на новое окно diff origin, которое открывается из текущего

#javascript #angular #typescript #cross-domain

#javascript #angular #typescript #междоменный

Вопрос:

Это проект Angular. На моей странице A у меня есть ссылка, которая ссылается на страницу другого происхождения, HTML, как показано ниже:

 ...
<a href="https://another.origin"> PAGE B </a>
...
  

Пользователь открыл страницу B в новом окне со страницы A. В этот момент A все еще открыт.

Теперь я хочу отправить сообщение в B, вот так referenceOfB.postmessage(msg, bOrigin) Поэтому мне нужно получить ссылку на B.

Я попытался window.open получить ссылку на B, но получил null, не уверен, что это правильный подход к нему. Кто-нибудь может дать несколько советов о том, как это сделать?

Ответ №1:

Вы можете использовать window.open для создания нового окна — эта функция возвращает ссылку на созданное окно. Затем вы можете отправить сообщение в is using postmessage .

https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage

 var w = window.open('https://google.com')
w.postMessage('hello', "*"); // can use target domain instead of *
  

Комментарии:

1. Как насчет того, хочу ли я сослаться на новое окно, которое открывается пользователем, но не моим window.open методом?

2. пользователем на вашем сайте? Я бы подумал, что вы должны перехватить его предполагаемый щелчок по ссылке и использовать window.open вместо этого.