这是我的意图:
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)