Javascript close()调用不起作用
我试图关闭一个子窗口,但在基于webkit的浏览器中遇到了一些非常奇怪的行为-它不起作用!以下是父级的HTML片段:Javascript close()调用不起作用,javascript,html,ajax,Javascript,Html,Ajax,我试图关闭一个子窗口,但在基于webkit的浏览器中遇到了一些非常奇怪的行为-它不起作用!以下是父级的HTML片段: var winBrowser = null; function openWindow(strAction) { switch(strAction) { case "req": winBrowser = window.open(...); ajax(...); break;
var winBrowser = null;
function openWindow(strAction) {
switch(strAction) {
case "req":
winBrowser = window.open(...);
ajax(...);
break;
case "succ":
// window.open(...);
break;
case "fail":
winBrowser.close();
// winBrowser.closeMe();
break;
}
}
函数最初以'req'作为strAction值调用。该段中的“ajax”调用再次调用同一个函数,但根据ajax调用本身的结果使用“succ”或“fail”参数。起初,我试图在成功后简单地打开子窗口,但在基于webkit的浏览器中失败了。因此,我调整了代码,在“req”部分加载一个空白窗口,并在ajax调用失败时关闭它,作为一种解决方法。但是,关闭();这个电话也没用。对决议有什么想法吗
更新:
我还尝试在子窗口中调用javascript函数,该函数仅尝试关闭子窗口:
function closeMe(){ window.close(); }
FWIW,它没有在ajax调用的回调中打开的原因是该事件不可信,即它不是由用户发起的。无法在不受信任的事件中打开新窗口。也许你也关不上,我从来没试过……这很有趣。有办法解决这个问题吗?没有,谢天谢地。如果能找到一些变通方法,现代浏览器将很快得到修复。有趣的是FF在原始代码中没有这个限制(注释掉了)。你有没有想过如何完成我想做的事情?你想做的是有道理的,但是没有足够的信息来帮助你-它到底是如何失败的?控制台中是否报告了错误?你确定代码符合该语句吗?