javascript数组仅循环第一个var

时间:2011-10-25 03:19:34

标签: javascript arrays url iframe var

我正在使用javascript循环遍历iframe中的url数组,到目前为止,当按下prev或next按钮时,它会跳转到数组中的第一个var,并且prev和next函数结束。有什么想法吗?

<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 个答案:

答案 0 :(得分: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];
}

答案 1 :(得分:0)

如果我正确理解您的问题,我认为您需要做的就是使用document.getElementById("myFrame").src=sites[number];代替document.getElementById("myFrame").src=sites[0];

答案 2 :(得分:0)

可能是

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

是您在两个函数中尝试做的事情。