Har sökt runt här nu men eftersom jag inte kan ett enda dugg JavaScript vet jag inte hur jag ska anpassa mitt skript:
<span id="timerdisplay"></span>
<script type="text/javascript">
var urls=new Array("http://www.google.com","http://www.webforum.nu","http://www.yahoo.com");
var sec=3;
//
var current=0; var ms=sec*1000;
setInterval("update();",1000);
function update(){
ms-=1000;
document.getElementById('timerdisplay').innerHTML="Ny popup om "+(ms/1000)+" sekunder.";
if(ms<=0){
window.open(urls[current]);
current=(current==urls.length-1)?0:current+1;
ms=sec*1000;
}
}
</script>
Men jag vill inte ha en popup utan att en ram i mitt framesett ska uppdateras istället. Dvs denna kod ska ligga i "menyn" och ska uppdatera "bodyn" med ett fint tidsintervall.
(om användaren kan ställa in tiden via ett litet textfönster vorde det skoj oxå, men inte nödvändigt)
Någon som kan hjälpa mig med detta?
TACK SÅ HEMSKT MYCKET!
edit: setTimeout, finns det inte en sådan funktion som kan göra något skoj?
Såhär ser det ut nu men något är fel för den visar bara den sista bilden i recordsettet, dvs den loopar igenom det för fort, och pausar inte som jag vill. Vad har jag gjort för fel?
tack!
<% DO WHILE Request.QueryString("action")="startabildspel" AND NOT RecSet.EOF
BildID = RecSet("BildID")%>
<SCRIPT Language="Javascript">
var sec=2;
var ms=sec*1000;
setTimeout("update();",1000);
function update(){
ms-=1000;
if(ms<=0){
parent.body.location.replace("foto.asp?sida=body&BildID=<%=BildID%>");
ms=sec*1000;
}
}
</SCRIPT>
<%
RecSet.MoveNext
LOOP %>
har börjat ana att setTimeout inte pausar det hela utan bara utför det hela lite senare. dvs när tiden för första exekveringen av uppdate() sker så är loopen redan genomkörd och den visar den sista bilden... hur kommer jag runt detta?
Alltså. Loopen är i asp. Loopen skriver ut ett javascript, gång på gång på gång på gång.
Du får inte ha hela scriptet i loopen, för då skrivs funktionen över hela tiden (det är den senaste som tolkas då, och den innehåller ju bilden från den "understa" posten i recordsetet. Du får alltså göra något sånt här:
* Lägg hela scriptet ovanför loopen.
* Modifiera funktionen så den tar som inparameter vilken bild som skall uppdateras med.
* Låt loopen skriva ut endast den rad där du kallar på funktionen.