2011-10-25 90 views
2

我使用的JavaScript來循環一個iframe中的網址數組,並且到目前爲止,當按下prev或next按鈕時,它跳轉到數組中的第一個var,並且prev和next函數結束。有任何想法嗎?JavaScript數組循環只有第一var

<iframe id="myFrame" src="http://startpage.com" width="484px" height = "424px"></iframe> 
<button onclick = "prevPage(); ">Prev</button> 
<button onclick = "nextPage(); ">Next</button> 

<script> 

var sites=new Array(); 
sites[0]="http://site1.html";  
sites[1]="http://site2.html"; 
sites[2]="http://site3.html"; 
sites[3]="http://site4.html"; 

function nextPage() { 
var number = document.getElementById("myFrame").src; 
number = number.substring(number.length - 4 ,number.length-3); 
number = parseInt(number) + 1; 
document.getElementById("myFrame").src=sites[0]; 
} 

function prevPage() { 
var number = document.getElementById("myFrame").src; 
number = number.substring(number.length - 3 ,number.length-4); 
number = parseInt(number) - 1; 
document.getElementById("myFrame").src=sites[0]; 
} 

</script> 

回答

3

?它會容易得多,只需使用一個變量:

var curPos = 0; 

function nextPage() { 
    curPos++; 
    if (curPos >= sites.length) { 
     curPos = 0; 
    } 
    document.getElementById('myframe').src = sites[curPos]; 
} 

function prevPage() { 
    curPos--; 
    if (curPos < 0) { 
     curPos = sites.length - 1; 
    } 
    document.getElementById('myframe'.).src = sites[curPos]; 
} 
+0

完美!這工作! –

0

如果我明白你的問題正確,我認爲你需要做的是你爲什麼要使用URL作爲你的「位置」存儲使用的document.getElementById("myFrame").src=sites[number];代替document.getElementById("myFrame").src=sites[0];

+0

謝謝,我給了它一個鏡頭,但按鈕停止運作,螢火蟲沒有吐出任何控制檯錯誤......嗯......我會繼續撞,再次謝謝! –

0

可能

document.getElementById("myFrame").src=sites[number-1]; 

是你正在嘗試在這兩個函數來完成。

+0

這返回本地文件搜索,而不是數組url –