---
title: "lista bilder (hantera array)"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/98543-lista-bilder-hantera-array"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "Calevan"
published: "2004-03-01T18:23:31.000Z"
updated: "2004-03-05T09:09:40.000Z"
replies: 9
views: 1087
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/98543-lista-bilder-hantera-array"
---

# lista bilder (hantera array)

## #1 — Calevan, 2004-03-01T18:23Z

Jag har en array som jag skickar till en funktion. Den funktionen ska byta bild i en annan frame med fint tidsintervall. Min funktion fungerar dock inte, hur ska jag skriva den?

Funktionen:

```
<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>
```

Koden som fixar arrayen och som anroppar funktionen:

```
      response.write "<script  language=""javascript"">"
      response.write "var bildid = new Array(); "
      response.write "var i ;  i = 0;"
      
      While not RecSet.eof
       response.write "bildid[i++] = " & RecSet("bildid") & ";"
       RecSet.movenext
      WEnd

      response.write "</script>"
      Response.Write "<A HREF=""javascript:bildspel(bildid)"" target=""body"">Starta</A><br>" 
      
      RecSet.MoveFirst
```

Använder jag mig av rätt metod? eller har någon något annat förslag? tack!

Permalänk: https://www.webforum.nu/p/98543

## #2 — dectgap, 2004-03-01T18:33Z

Testa att ändra till:

```
<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>
```

Permalänk: https://www.webforum.nu/p/1288061

## #3 — Calevan, 2004-03-01T23:18Z

Funkar inte det heller. Vet inte vad det är för fel. den säger att bildid är odefinierat. anroppar jag fel?

så är står det i min källkod på den sidan när arrayen ska vara fixad:

```
<script  language="javascript">
var bildid = new Array();
var i ;
i = 0;
bildid[i++] = 4177;
bildid[i++] = 4178;
bildid[i++] = 4179;
bildid[i++] = 4180;
</script>
<A HREF="javascript:bildspel(bildid)" target="body">Starta(2)</A><br>
```

behöver hjälp!

tack!

edit:
för att testa gå till <http://w3.chs.chalmers.se/kommitteer/pyrot/fredrik/MSQLfoto/default.asp>
logga in med gäst/gäst klicka vidare till någon kategori och sen klicka på start(2). Gör inget annat, allt funkar inte ännu.

Permalänk: https://www.webforum.nu/p/1288198

## #4 — Calevan, 2004-03-02T21:35Z

eftersom marsvinet inte tycker att denna frågan ska diskuteras i asp-forumet hoppas jag att någon här inne kan svara på frågan. Jag tror att felet är på denna raden:

```
Response.Write "<A HREF=""java script:bildspel(bildid)"" target=""body"">Starta</A><br>"
```

jag lyckas helt enkelt inte anropa mit script med den arrayen som jag skapat... hur ska den raden se ut? någon som vet?

tack!

Permalänk: https://www.webforum.nu/p/1288704

## #5 — Zaiman, 2004-03-03T10:03Z

Kanske skriva raden såhär istället

```
Response.Write "<A HREF='java script:bildspel(bildid)' target='body'>Starta</A><br>"
```

Permalänk: https://www.webforum.nu/p/1288829

## #6 — ejick, 2004-03-03T10:21Z

Saken är den att du använder förmycket fnuttar.

För att länken skulle vara korrekt borde det vara:

```
<a href="javascript:bildspel('bildid');" target="body">Starta</a>
```

Men då du använder Response.Write bör du ju ha fler fnuttar. Prova med att skriva fäljande:

```
Response.Write "<a href='javascript:bildspel(\'bildid\');" target='body'>Starta</a>"
```

Det verkar inte fungera att skriva ut. Men runt bildid skall det vara "backslash \\"+ "enkelfnutt ' " \\'

Permalänk: https://www.webforum.nu/p/1288836

## #7 — Calevan, 2004-03-03T22:12Z

> **ejick skrev:**
>
> Det verkar inte fungera att skriva ut. Men runt bildid skall det vara "backslash \\"+ "enkelfnutt ' " \\'

tyvärr hängde jag inte med på det... vilket av det du skrev ska jag skriva?

```
Response.Write "<a href='javascript:bildspel ( ' " \ " + " ' b i l d i d ' " ' ) ; " target='body'>Starta</a>"
```

skrev med mellanslag... inte riktigt så här va?

tack!

Permalänk: https://www.webforum.nu/p/1289213

## #8 — Johnsen, 2004-03-04T08:45Z

Jag tror inte det är fel på citationstecknen, utan på skriptet i sig och hur det anropas.
Man kan bla. inte loopa en settimeout som du vill göra i din funktion.

Prova detta

```
<script language="javascript"> 

function initBild(vilkenArray){
	i = 0;
	arrBildID = vilkenArray;
	bildspel();
}

function bildspel(){
	if(i < arrBildID.length){
		setTimeout("parent.body.location.href='foto.asp?sida=body&BildID=" + arrBildID[i] + "'; bildspel();",1000);
		i++;
	}
}
</script>

<script  language="javascript">
var bildid = new Array();
var i ;
i = 0;
bildid[i++] = 4177;
bildid[i++] = 4178;
bildid[i++] = 4179;
bildid[i++] = 4180;
</script>

<a href="&#106;avascript:initBild(bildid)">Starta(2)</a>
```

Och skall du skriva ut länken med asp:

```
Response.Write "<a href=""&#106;avascript:initBild(bildid)"">Starta(2)</a>"
```

Permalänk: https://www.webforum.nu/p/1289303

## #9 — Calevan, 2004-03-04T13:44Z

> **Johnsen skrev:**
>
> massa bra saker

TACK!

jag hade inte testat själva funktionerna så mycket då jag inte lyckats att anropa dem med en korrect array innan. De funktionerna du skrev funkar bra! detta är min kod för att skapa arrayen och anropa funktionerna:

```
      response.write "<script  language=""javascript"">"
      response.write "var bildid = new Array(); "
      i = 0
      While not RecSet.eof
       response.write "bildid[" & i & "] = " & RecSet("bildid") & ";"
       i = i + 1
       RecSet.movenext
      Wend
      response.write "</script>" 
      %>
      
      <a href="javascript:initBild(bildid)">Starta</a><br>
      <A HREF="javascript:initBild()">Stoppa</A>
```

Har bara några frågor kvar nu:
1\. Det blir ju en fördröjning innan första bilden visas, kan man ta sig runt det på något sätt?

2\. Sen vill jag även att man ska kunna stoppa det hela. Jag testade genom att anropa funktionen utan array. Då fick jag ett felmedelande på sidan, så visas en bild i bildspelet till (setTimeout håller väll på med den) och sen stannar det. Finns det något sätt att få det att stanna direkt?

(3. Funderar på att göra tiden som indata till funktionen, så att en användare kan välja hur fort bildspelet ska gå... funkar det?)

TACK till alla som hjälp mig så här långt! kanonbra har ni varit! :)

Permalänk: https://www.webforum.nu/p/1289447

## #10 — Johnsen, 2004-03-05T09:09Z

1\. Utför första bildbytet i direkt vid anropet och inte i timern
2\. Gör en *clearTimeout*
3\. Skicka med tiden som en parameter i anropet

```
<script language="javascript"> 
var foo
function initBild(vilkenArray, tid){
	i = 0;
	arrBildID = vilkenArray;
	hastighet = tid? tid : 3000;
	parent.body.location.href="foto.asp?sida=body&BildID=" + arrBildID[i];
	i++;
	bildspel();
}

function bildspel(){
	if(i < arrBildID.length){
		foo = setTimeout("parent.body.location.href='foto.asp?sida=body&BildID=" + arrBildID[i] + "'; bildspel();",hastighet);
		i++;
	}
}
</script>

<a href="&#106;avascript:initBild(bildid, 1000)">Starta</a><br>
<a href="&#106;avascript:clearTimeout(foo)">Stoppa</a>
```

Permalänk: https://www.webforum.nu/p/1292803

---

Tråden på webben: https://www.webforum.nu/amne/javascript/98543-lista-bilder-hantera-array
