Javascript IE9在子窗口上失去控制
我有一些javascipt,可以用类似的代码打开两个弹出窗口:Javascript IE9在子窗口上失去控制,javascript,internet-explorer-9,popupwindow,Javascript,Internet Explorer 9,Popupwindow,我有一些javascipt,可以用类似的代码打开两个弹出窗口: Child[i] = window.open(...); 然后,我尝试使用以下代码从主窗口关闭所有窗口: setTimeout(Child[i].close(), 5000); 问题是在IE9中,2弹出窗口无法关闭,似乎主窗口完全失去了对2弹出窗口(子窗口)的控制,但这只发生在2 URL为真实URL时,我指的是指向真实网站(如google.com)的URL目标,另一方面,如果URL为about:blank,则弹出窗口在5秒钟后关
Child[i] = window.open(...);
然后,我尝试使用以下代码从主窗口关闭所有窗口:
setTimeout(Child[i].close(), 5000);
问题是在IE9中,2弹出窗口无法关闭,似乎主窗口完全失去了对2弹出窗口(子窗口)的控制,但这只发生在2 URL为真实URL时,我指的是指向真实网站(如google.com)的URL目标,另一方面,如果URL为about:blank
,则弹出窗口在5秒钟后关闭(如预期的那样工作)
在Chrome中,无论URL是什么,脚本都能正常工作。我不知道IE的这种行为是什么,希望能得到您的帮助。
谢谢!请在关闭前尝试设置:
Child[i].opener = window;
Child[i].close();
注意:这适用于IE<9,尚未在9上试用过
我刚刚注意到的另一件事是,将您的setTimeout
调用更改为this并尝试:
setTimeout(function() {
Child[i].opener = window;
Child[i].close();
}, 5000);
听起来像是安全问题,保护用户不被脚本关闭外部网站。无论如何,请在打开窗口时尝试向窗口添加名称,例如
Child[i]=window.open(“http://www.google.com“,“myWindowName”)
@shadow wizard谢谢你,但实际上我在脚本中输入了名字,很抱歉没有在问题中显示出来。谢谢你,但是脚本似乎突然中断了,然后什么也没有发生