2011-10-25 1 views
2

J'utilise javascript pour faire défiler un tableau d'URL dans un iframe et jusqu'à présent quand les boutons prev ou next sont pressés, il saute à la première var dans le tableau et les fonctions prev et next fin . Des idées?javascript array cyclable seulement en premier 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> 

Répondre

3

Pourquoi utilisez-vous l'URL que votre stockage « position »? Il serait beaucoup plus facile de simplement utiliser une variable:

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

Parfait! cela marche! –

0

Si je comprends bien votre problème correctement, je pense que tout ce que vous devez faire est d'utiliser document.getElementById("myFrame").src=sites[number]; au lieu de document.getElementById("myFrame").src=sites[0];

+0

Merci, j'ai donné un coup de feu mais les boutons ont cessé de fonctionner et Firebug n'a pas craché d'erreurs de console ... hmm ... Je vais continuer à frapper, merci encore! –

0

peut être

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

est ce que vous essayez de faire dans les deux fonctions.

+0

Cela a renvoyé une recherche de fichier local au lieu des URL de tableau –