如何在Javascript中循环数组?

时间:2017-05-15 01:53:04

标签: javascript html

当我运行此代码时,它只读取索引0出错了什么?

使用Javascript:

function openTabs()
{
    var data = document.getElementById('excelData').value;
    var rows = data.split("\n");
    for(var i = 0; i < rows.length; i++)
    {
        window.open('http://www.google.com/search?q=' + rows[i]);
    }
}

HTML:

<textarea id = "excelData" name="excel_data" style="width:300px;height:580px;"></textarea><br>
<input type="button" onclick="openTabs()" value="Open Tabs"/>

3 个答案:

答案 0 :(得分:1)

循环之前的代码和循环本身都没有错。我怀疑你使用的浏览器阻止你打开许多窗口。

您可以通过将行更改为其他内容来验证这一点,例如console.log(rows[i]);,并查看该输出是否超过索引中的第一个元素。

答案 1 :(得分:0)

这取决于浏览器。如果您使用Chrome,则会阻止在同一时刻打开多个窗口。要允许此操作,请在地址栏中单击阻止的弹出窗口,然后选择&#34;始终显示来自[site]的弹出窗口&#34;

答案 2 :(得分:0)

您可以尝试设置window.open方法的name属性。与此同时,您可能需要允许从浏览器弹出。

以下是将名称属性添加到window.open

的代码段
function openTabs() {
  var data = document.getElementById('excelData').value;
  var rows = data.split("\n");
  for (var i = 0; i < rows.length; i++) {
    // second parameter is the name 
    window.open('http://www.google.com/search?q=' + rows[i],'newWindow'+i);
  }
}

DEMO

允许从浏览器选项中弹出

Allow popup from the browser option