2012-02-14 5 views
1

Скажем, у меня есть массив из 3 URL-адресов с iFrame на странице.JavaScript: изменение iFrame src из Array

Как я могу просматривать эти 3 URL каждые 5 секунд, а затем начинать? В идеале страница останется неизменной, только iFrame src изменится.

ответ

2

Что-то, как это должно работать:

setInterval(function(){ 
    var u = 0; 
    document.getElementById('myiFrame').setAttribute('src',myUrlArray[u]); 
    if(u < myUrlArray.length-1){ 
     ++u; 
    }else{ 
     u = 0; 
    } 
},5000); 
+0

Да, setInterval будет более подходящим, чем мое решение. – caleb

0

Предположим, у вас есть это:

<iframe id="ifr" src="">Your browser does not support iframes</iframe> 

Вам просто нужно сделать это в Javascript:

var URLs = ["url1", "url2", "url3"]; 
var currURL = 0; 

function cycle() { 
    currURL = (currURL + 1) % 3; 
    document.getElementById("ifr").src = URLs[currURL]; 
    setTimeout(cycle, 5000); 
} 

cycle(); 
+0

используйте "% URLs.length" вместо "% 3" – Beriz

0

код в качестве правильный ответ не работает, поскольку он всегда считается слишком высоким. Вот код, который работает для меня безупречно:

<html> 
<body> 

<iframe id="myiFrame" src="a.html" width="100%" height="100%"></iframe> 

<script> 
    var myUrlArray = [ 
     "a.html", 
     "b.html", 
     "c.html" 
    ]; 
    var u = 1; 

    setInterval(function(){ 
     document.getElementById('myiFrame').setAttribute('src',myUrlArray[u]); 
     u++; 
     if (u == myUrlArray.length) {u = 0;} 
    },1000); 
</script> 

</body> 
</html>