我有一个位于 x.com 的页面。此页面上有一个按钮,单击该按钮将启动一个新窗口(使用 javascript 的 window.open() 方法)到位于 z.com 的页面。弹出窗口做了一些事情,然后根据弹出窗口中定义的一些参数将原始窗口(打开器,x.com)重定向到不同的页面。
这在 Firefox/Chrome 中运行良好,但在 IE 中不行。在 IE(特别是 8,但我相信 7 也有这个问题)中,原始窗口(开启器)没有被重定向。相反,会出现一个新窗口并重定向该窗口。
我尝试了许多不同的方法来尝试让它工作,包括将弹出窗口更改为页面上加载的 iframe,并在弹出窗口/iframe 调用的开启器上具有一个函数。问题似乎是 IE 拒绝允许跨域站点通过 javascript 相互通信。
有没有解决的办法?如何让父窗口根据弹出窗口或 iframe 中的参数重定向到页面?
编辑:
以下是一些示例代码:
在 domainA.com 的一个页面中,我有这个:
<img src='/images/test.png' onclick="window.open('http://www.domainB.com/item.aspx', 'name', 'width=100,height=100,menubar=no,status=no,toolbar=no');" />
在 domainB.com 上的 item.aspx 中,我在 javascript 中有这个:
opener.location.href = 'http://www.somethingelse.com/';
在 Firefox/Chrome 中,这可以正常工作。在 IE 中,当 domainB.com 尝试在开启程序(也称为父窗口,即 domainA.com)上设置 location.href 时,它会打开一个新窗口,这不是我想要的。我希望它将打开器(父窗口)重定向到我指定的 URL。
巴拉