如何使用javascript多次访问网页?

时间:2018-03-20 21:13:50

标签: javascript arrays http web

我尝试多次访问某个网页,但每次我都会使用不同的参数。

以下是我尝试的一个例子:

var codes = [1, 2, 3, 4, 5]

for(i = 0; i <= codes.lenght; i++){
    window.open('http://localhost/applicationame/execute/cod/'+codes[i],'_self');
}

(由于与工作相关的隐私,我删除了网址真实姓名)

但是当我在浏览器控制台中执行它时,浏览器只访问包含我的数组的最后一个元素的页面。我厌倦了使用setTimeout使浏览器等待,然后访问下一页但它只是返回我相同的行为。我试过谷歌搜索一些解决方案,但没有找到适用于我的情况的好答案。如果需要,我也可以使用JQuery或者可以帮助我使用其他工具。

2 个答案:

答案 0 :(得分:2)

这种情况正在发生,因为你在同一个窗口打开所有实例。

尝试将'_self'替换为i的值,因此每个窗口都有一个唯一的名称参数

答案 1 :(得分:-1)

您的代码中有几个问题:

  • _self将在同一窗口中打开目标网址 - 因此您的循环会在加载新页面的同一时刻中断。
  • codes.lenght应为code.length

我试图创建一个工作示例 - 但是无法做到。 显然浏览器无法循环打开窗口。至少Chrome会显示一条消息,指出窗口已被阻止。

在这里看我的测试:

&#13;
&#13;
function openWindows() {
  var codes = [1, 2, 3, 4, 5];
  for(i = 0; i < codes.length; i++){
      var params = {
        url: 'https://edition.cnn.com/?var='+codes[i],
        i: i
      };
      var delay = i * 2000;
      setTimeout(function(params) {
        console.log(params.url);
        window.open(params.url,'_blank', 'PopUp', params.i);
      }, delay, params);
      
  }
}
&#13;
<!DOCTYPE html>
<html>

  <head>
    <link rel="stylesheet" href="style.css">
    <script src="script.js"></script>
  </head>

  <body>
    <h1>Click to open windows</h1>
    <button onClick="openWindows()">Start</button>
  </body>

</html>
&#13;
&#13;
&#13;

如果您想测试,请使用Plunker作为游乐场,因为SO游乐场无法打开新窗口:https://plnkr.co/edit/L318Q564spTqMVkqQUPa?p=preview

在现代网络开发中,很少看到浏览器窗口被打开。 您可以尝试使用iFrame添加新的DIV图层。