我尝试多次访问某个网页,但每次我都会使用不同的参数。
以下是我尝试的一个例子:
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或者可以帮助我使用其他工具。
答案 0 :(得分:2)
这种情况正在发生,因为你在同一个窗口打开所有实例。
尝试将'_self'替换为i的值,因此每个窗口都有一个唯一的名称参数
答案 1 :(得分:-1)
您的代码中有几个问题:
codes.lenght
应为code.length
我试图创建一个工作示例 - 但是无法做到。 显然浏览器无法循环打开窗口。至少Chrome会显示一条消息,指出窗口已被阻止。
在这里看我的测试:
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;
如果您想测试,请使用Plunker作为游乐场,因为SO游乐场无法打开新窗口:https://plnkr.co/edit/L318Q564spTqMVkqQUPa?p=preview
在现代网络开发中,很少看到浏览器窗口被打开。 您可以尝试使用iFrame添加新的DIV图层。