我刚刚发现如果新 URL 在 IE 中是跨域的,则在window.opener
打开的窗口中不可用。如何在 IE 中检测开窗器window.open
如果窗口在我的域中启动,离开它,然后返回到我的域,就会发生这种情况。我正在尝试在弹出窗口中进行社交注册(facebook、google 等)。完成后,它应该关闭新窗口并重定向开启者。
我知道 Soundcloud 正在实现这一点,但我不知道如何实现。我看到 URL 从他们的变为 Facebook,然后关闭。
从第 3 方重定向回我的网站后,我运行以下命令:
var data = {
type : 'complete',
destination : '<?= $destination; ?>'
};
if ( window.opener ) {
window.opener.postMessage( JSON.stringify( data ), '*' );
window.close();
}
else {
alert( "Unable to find window" );
}
它在 IE 中发出警报,即使该窗口最初是我的域,然后重定向到 FB,然后重定向回我。我想可能是因为我打开我的网站并立即从 PHP 重定向,这可能是个问题。但是,即使我打开我的网站,window.location.href = 'facebookssite.com'
返回时它仍然抱怨吗?
笔记
社交注册不适用于iframe
. 我相信他们出于安全原因不允许使用它们。