我有一个如下的javascript函数
function allsave(){
var list = document.getElementById("tableData").getElementsByTagName('a');
var i;
for(i=0;i<list.length;i++){
tab=window.open(list[i], '_blank');
setTimeout("tab.close()", 1);
if(tab.closed === true){
continue;
}
}
我期望在调用该函数时,它将打开一个位于数组内部的新选项卡,并关闭该选项卡,然后打开下一个。但是我不能做同样的事情,此功能只是打开选项卡而不关闭它在哪里我错了?
答案 0 :(得分:0)
您需要在tab
名称上使用闭包,而不是setTimeout
的字符串形式,它基本上是在全局范围内运行。
function allsave() {
var list = document.getElementById("tableData").getElementsByTagName("a");
var i;
for (i = 0; i < list.length; i++) {
const tab = window.open(list[i], "_blank");
setTimeout(() => tab.close(), 1);
if (tab.closed === true) {
continue;
}
}
}