Javascript 如何从跨站点弹出窗口访问window.opener?

Javascript 如何从跨站点弹出窗口访问window.opener?,javascript,Javascript,我正在制作一个小部件,我需要在弹出窗口中的特定事件之后,将父窗口重定向到特定的url,这是基于另一个域的。a怎么能做到这一点 window.opener.location.replace(url); 你不能那样做。大多数浏览器都不允许跨站点脚本编写 但是,您可以通过此处描述的跨文档消息传递与另一个窗口进行通信: 您最多只能从弹出窗口向开场白发送消息,并在开场白中收听此类消息。然后,开瓶器必须自行更改其位置 // popup: window.opener.postMessage('replace

我正在制作一个小部件,我需要在弹出窗口中的特定事件之后,将父窗口重定向到特定的url,这是基于另一个域的。a怎么能做到这一点

window.opener.location.replace(url);

你不能那样做。大多数浏览器都不允许跨站点脚本编写

但是,您可以通过此处描述的跨文档消息传递与另一个窗口进行通信:

您最多只能从弹出窗口向开场白发送消息,并在开场白中收听此类消息。然后,开瓶器必须自行更改其位置

// popup:
window.opener.postMessage('replace your location', '*');

// opener:
window.onmessage = function (e) {
  if (e.data === 'replace your location') {
    window.location.replace(...);
  }
};

在某些情况下,这是可能的,但只有不同的子域,而不是完全不同的域。看


但由于
postMessage();或者我读错了问题?我想要kmow,我能解决这个限制吗?奇怪的是,它在Firefox中对我有效。您使用的是哪种浏览器?仅供参考,postMessage在IE中的弹出窗口之间不起作用,即使在IE10My中,opener也应位于不同的域www.mydomain.com。我想给他发送一些敏感数据。我如何检查我的开启器是否真的是www.mydomain.com?但在我的情况下,
window.opener
本身返回null。。那么我将如何发布消息。