首页 > 解决方案 > 如何获取对从当前打开的差异来源的新窗口的引用

问题描述

这是一个 Angular 项目。在我的页面 A 上,我有一个链接到不同来源的页面,HTML 如下所示:

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

用户从页面A打开页面B进入一个新窗口。此时,A仍然打开。

现在我想向 B 发布一条消息,就像这样referenceOfB.postmessage(msg, bOrigin)所以我需要获得对 B 的引用。

我试图 window.open获得对 B 的引用,但得到了 null,不确定这是否是处理它的正确方法。谁能给出一些关于如何做到这一点的提示?

标签: javascriptangulartypescriptcross-domain

解决方案


您可以使用window.open生成一个新窗口 - 此函数返回对生成的窗口的引用。然后,您可以向正在使用的 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 *

推荐阅读