更改iframe的src和setInterval()

时间:2014-08-13 08:38:03

标签: javascript iframe setinterval src

我正在尝试处理我的JS下载链接数组,以便它们在iframe中打开延迟毫秒,以使用户能够点击下载链接。问题是,当一个链接加载到iframe时,它会突然发生。无缘无故跳进主窗口,就像我只是重定向页面一样。然后脚本停止,因为我在第一个数组链接的位置。这是我的代码:

<a href="javascript:void(0);" onclick="
var delay = document.getElementById('delay').value;
var arr = ['link1.html','link2.gtml','link3.html','link4.html'];
var i = 0;
var loop = setInterval(function(){
document.getElementById('iframe').src = arr[i];
if (i+1<arr.length) {i++;} else {clearInterval(loop);}
}, delay);
"><div class="button" align="center" style="font-size: 14px;">Start the batch</div></a>  
<br>
Loading interval: <input type="text" size="2" id="delay" value="15000"> miliseconds
<br>
<iframe id="iframe" style="width: 99%; height: 400px; border: 1px solid rgba(128,128,128,0.5);" src="about:blank"></iframe>

1 个答案:

答案 0 :(得分:0)

我没有确切地提出您的问题,但我对您的问题知道的是,当您更改iframe中的src属性时,它会更新您的浏览器历史记录状态,因此请尝试,不要更新src属性,而是重新创建iframe :

var loop = setInterval(function(){
 var iframe = document.getElementById('iframe');
 var parent = document.getElementById('iframe').parentNode;
 parent.removeChild(iframe);
 var newIframe = document.createElement('iframe');
 newIframe.src = arr[i];
 parent.appendChild(newIframe);
 if (i+1<arr.length) {i++;} else {clearInterval(loop);}
}, delay);