Javascript函数未关闭打开的选项卡

时间:2018-07-13 11:02:45

标签: javascript

我有一个如下的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;
    }
  }

我期望在调用该函数时,它将打开一个位于数组内部的新选项卡,并关闭该选项卡,然后打开下一个。但是我不能做同样的事情,此功能只是打开选项卡而不关闭它在哪里我错了?

1 个答案:

答案 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;
    }
  }
}