假設我在頁面上有一個3個帶有iFrame的URL的數組。JavaScript:從數組中更改iFrame src
我該如何運行這3個網址每隔5秒鐘,然後重新開始? 理想情況下,頁面將保持不變,只是iFrame src會發生變化。
假設我在頁面上有一個3個帶有iFrame的URL的數組。JavaScript:從數組中更改iFrame src
我該如何運行這3個網址每隔5秒鐘,然後重新開始? 理想情況下,頁面將保持不變,只是iFrame src會發生變化。
像這樣的東西應該工作:
setInterval(function(){
var u = 0;
document.getElementById('myiFrame').setAttribute('src',myUrlArray[u]);
if(u < myUrlArray.length-1){
++u;
}else{
u = 0;
}
},5000);
假設你有這樣的:
<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();
使用「%URLs.length」而不是「%3」 – Beriz 2013-11-04 16:15:07
代碼中的正確的標記答案不起作用,因爲它總是過高。這裏是完美工作的代碼:
<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>
是的,setInterval比我的解決方案更合適。 – caleb 2012-02-14 06:56:12