Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript close()调用不起作用_Javascript_Html_Ajax - Fatal编程技术网

Javascript close()调用不起作用

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;

我试图关闭一个子窗口,但在基于webkit的浏览器中遇到了一些非常奇怪的行为-它不起作用!以下是父级的HTML片段:

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在原始代码中没有这个限制(注释掉了)。你有没有想过如何完成我想做的事情?你想做的是有道理的,但是没有足够的信息来帮助你-它到底是如何失败的?控制台中是否报告了错误?你确定代码符合该语句吗?