2012-02-14 73 views
1

假設我在頁面上有一個3個帶有iFrame的URL的數組。JavaScript:從數組中更改iFrame src

我該如何運行這3個網址每隔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 2012-02-14 06:56:12

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 2013-11-04 16:15:07

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>