Javascript window.close在第一次传递后显示null,第一次传递工作正常
我无法理解为什么这在第一次传递时可以正常工作,但在随后的每个传递中,itemWindow.close()处的itemWindow都为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 => {
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秒钟,然后关闭。叹气编码太有趣了!:)