Używam JavaScript, aby przełączać się przez tablicę adresów URL w ramach IFrame i do tej pory, gdy przyciski Poprzednia lub następne zostaną naciśnięte, skacze do pierwszego VAR w tablicy i kończą zarówno prev, jak i następne funkcje. Jakieś pomysły?

<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>
2
Daniel Fletcher 25 październik 2011, 07:19

3 odpowiedzi

Najlepsza odpowiedź

Dlaczego używasz adresu URL jako przechowywania "pozycji"? Byłoby znacznie łatwiejsze do użycia zmiennej:

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];
}
3
Marc B 25 październik 2011, 03:27

Jeśli poprawnie zrozumiałem swój problem, myślę, że wszystko, co musisz zrobić, jest używać document.getElementById("myFrame").src=sites[number]; zamiast document.getElementById("myFrame").src=sites[0];

0
ScottD 25 październik 2011, 03:25

Może

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

Jest tym, co próbujesz zrobić w obu funkcjach.

0
Bhesh Gurung 25 październik 2011, 03:29