我有一个applcation,使用window.open(url)启动弹出窗口,如下所示。
function goRelURL(){winObj = window.open(url,“w1”); winObj.focus(); }
从弹出窗口我点击按钮关闭弹出窗口。点击一个方法被调用,然后从那里我设置父窗口的URL并关闭弹出窗口:
window.opener.location.href = '<%= URL%GT;'; window.close()的;
这适用于带有WIN-XP的IE6,IE8和Firefox3.0。但它在使用Windows-7的IE8中失败了。使用win-7设置弹出窗口的url,弹出窗口保持打开状态。
感谢任何帮助。
答案 0 :(得分:0)
我遇到了类似的问题,我们的Intranet网站呼叫互联网上的第三方订购系统并传回一些数据等,这次调用是刷新调用页面和整个过程的关键。在安全区域之间进行更改时,仅在Windows 7和IE8中出现问题,如果安全区域相同,则不会发生这种情况。
基本上问题似乎是IE8不再允许你在不同安全区域内的站点之间发送数据,它会失去对window.opener的跟踪,你在区域中实际拥有的安全设置似乎并不重要只要有2个站点在其中。
所以我原来的“解决方案”建议是
在Windows 7和IE 8上通过更改下面的设置 互联网选项 - >安全 - >启用保护模式(需要重新启动IE)将允许它再次工作,但至于为什么以及它还有什么其他副作用我还没有发现。
这显然影响了您运行的每个站点,我的假设是,这使它恢复工作的方式,尽管我仍然不完全理解为什么启用保护模式==“禁用系统关键安全功能”当然,启用保护模式应该受到更多保护,或者它的命名设置错误!
无论如何,只要将互联网上的网站添加到您信任的网站并将其视为内部网站点,您就可以获得相同的“修复”。反之亦然,问题是保护模式的变化。
我在同一个窗口中运行网站也取得了一些成功 - 尽管我认为我已经重新编码,只是设置了窗口位置并删除了对window.opener的需求。