如果手动单击 URL 并打开一个新选项卡,打开的选项卡是否可以获取对单击该 URL 的窗口的引用?



这是我的意图:
1.用户单击窗口上的URL并在新选项卡中打开(新打开的选项卡与原始窗口具有相同的域(。
2. 打开的选项卡将消息(使用postMessage(发送到用户单击该 URL 的原始窗口。

遗憾的是,打开的选项卡无法获取对原始窗口的引用。我试过window.opener但没有用。似乎大多数方法只有在使用window.open打开选项卡时才有效。

我考虑过让原始窗口向打开的选项卡发送消息。这样,新选项卡就可以使用event.source获取对原始窗口的引用。到目前为止,我可以通过向 URL 添加onclick来使原始窗口检测用户何时单击 URL,但如果用户通过按滚轮打开 URL,它不会触发,而且我也无法找到一种方法让原始窗口获得对打开的选项卡的引用。

当用户单击rel属性设置为opener的链接时,window.opener属性设置在新选项卡或窗口中。从那里,您可以调用在该窗口上定义的函数。

// first tab:
window.sendMessage = function (data) {
// handle message
}
// new tab
window.opener.sendMessage(data)

最新更新