Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.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 window.close在第一次传递后显示null,第一次传递工作正常_Javascript - Fatal编程技术网

Javascript window.close在第一次传递后显示null,第一次传递工作正常

Javascript window.close在第一次传递后显示null,第一次传递工作正常,javascript,Javascript,我无法理解为什么这在第一次传递时可以正常工作,但在随后的每个传递中,itemWindow.close()处的itemWindow都为null。如有任何见解,将不胜感激 const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); export const getItems = ids => { let itemWindow; ids.map(async id => {

我无法理解为什么这在第一次传递时可以正常工作,但在随后的每个传递中,itemWindow.close()处的itemWindow都为null。如有任何见解,将不胜感激

const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));

export const getItems = ids => {
    let itemWindow;
    ids.map(async id => {
        let url = `${some_url}`;
        itemWindow = window.open(url, '_blank');
        await sleep(5000);
        itemWindow.close();
    });
};

这很可能是因为弹出窗口拦截器阻止了各种窗口的打开。尝试禁用弹出窗口阻止程序,不要忘了检查返回值是否不是
null

let url=`${some\u url}`,
itemWindow=window.open(url“_blank”);
如果(!itemWindow){
抛出新错误(“无法打开窗口”)
}
等待睡眠(5000);
itemWindow.close();

最有可能发生这种情况,因为弹出窗口阻止程序正在阻止各种窗口打开。尝试禁用弹出窗口阻止程序,不要忘了检查返回值是否不是
null

let url=`${some\u url}`,
itemWindow=window.open(url“_blank”);
如果(!itemWindow){
抛出新错误(“无法打开窗口”)
}
等待睡眠(5000);
itemWindow.close();

浏览器对空白标签有限制,以避免垃圾邮件操作标签。浏览器对空白标签有限制,以避免垃圾邮件操作标签。谢谢,@D.Pardal,就是这样。Chromes内置弹出窗口拦截器。现在要弄清楚为什么,当我运行这个时,我现在有50个标签打开,而不是一个打开,等待5秒钟,然后关闭。叹气编码太有趣了!:)谢谢,帕达尔博士,就这样。Chromes内置弹出窗口拦截器。现在要弄清楚为什么,当我运行这个时,我现在有50个标签打开,而不是一个打开,等待5秒钟,然后关闭。叹气编码太有趣了!:)