CalevanMedlem sedan maj 20031 173 inlägg 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?
CalevanMedlem sedan maj 20031 173 inlägg 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 %>
CalevanMedlem sedan maj 20031 173 inlägg Jag bytte altså setInterval mot setTimeout... vilket inte går att göra?
CalevanMedlem sedan maj 20031 173 inlägg 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?
@ndersMedlem sedan juni 200032 969 inlägg 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.
CalevanMedlem sedan maj 20031 173 inlägg Något sånt här då? fast detta funkar inte det heller...
<SCRIPT Language="Javascript">
function update(BildID){
setTimeout("parent.body.location.replace("foto.asp?sida=body&BildID=" + BildID + "")",1000);
}
</SCRIPT>
<% DO WHILE Request.QueryString("action")="startabildspel" AND NOT RecSet.EOF
BildID = RecSet("BildID")%>
<SCRIPT Language="Javascript">
update(<%=BildID%>);
</SCRIPT>
<%
RecSet.MoveNext
LOOP
CalevanMedlem sedan maj 20031 173 inlägg Har tänkt om lite nu och tänkte att funktionen skulle få alla värden i en array som den sedan går igenom steg för steg.
fast som vanligt vet jag inte hur jag ska skriva. nu ser det ut så här:
<SCRIPT Language="Javascript">
function bildspel(arrBildID){
for (var i=0; i < arrBildID.length; i++) {
setTimeout("parent.body.location.replace("foto.asp?sida=body&BildID=" + arrBildID[i] + "")",1000);
}
}
</SCRIPT>
någon?
tack!