webForumDet fria alternativet

ASP i javascript

20 svar · 378 visningar · startad av tronez

tronezMedlem sedan juli 2001728 inlägg
#1

Jag har ett gjort ett ASP script med hjälp av FSO där jag tar ut hur många bilder det finns i en katalog och lägger det i en array, och nu vill jag plocka ur den arrayen till ett javascript och kunna uppdatera var sjätte sekund?

Någon som kan hjälpa mig??

Peter SMedlem sedan dec. 20025 483 inlägg
#2
<script type="text/javascript">
<!--

var arr = [];

<%
Dim i

For i=0 To UBound(din_array) Step 1 %>
     arr.push( "<%=din_array(i) %>" );
<% Next %>

//-->
</script>

Har ingen möjlighet att testa ovanstående, men nu bör innehållet i ditt ASP-fält vara kopierat till JavaScript-fältet arr.

:)

tronezMedlem sedan juli 2001728 inlägg
#3

använde din kod, det enda som inte funka var att ha med Ubound

min kod ser ut så här nu...


<script type="text/javascript">
<!--

var arr = [];

<%
	For g=0 To ant Step 1 %>
     	arr.push( <%=arre(g) %> );
 <% Next %>

//-->

den funkar , förutom att det blir en tom efter den lagt in alla saker i arrayen....

Om jag vill nu göra en timer som är satt på 6 sek och byta bild i arrayen hur gör man då , finns det nåt bra att läsa för att kunn klara av det?

Peter SMedlem sedan dec. 20025 483 inlägg
#4

UBound skall fungera; fick du något felmeddelande?

:)

tronezMedlem sedan juli 2001728 inlägg
#5

Feltyp:
Körningsfel i Microsoft VBScript (0x800A000D)
Inkompatibla typer: 'UBound'
/gey/index.asp, line 35
Peter SMedlem sedan dec. 20025 483 inlägg
#6

Förmodligen så har du skickat in fel argument till UBound(), din kod skall se ut så här:

<script type="text/javascript">
<!--

var arr = [];

<%
Dim i

For i=0 To UBound(arre) Step 1 %>
     arr.push( "<%=arre(i) %>" );
<% Next %>

//-->
</script>

:)

tronezMedlem sedan juli 2001728 inlägg
#7

yep... det funka... jag som strula som vanligt :)

/r: men det är fortfarande att koden blir så här:


<script type="text/javascript">

	var arr = [];
	
     		arr.push( bild1.gif );
 	 
     		arr.push( bild2.gif );
 	 
     		arr.push( bild3.gif );
 	 
     		arr.push( bild4.gif );
 	 
     		arr.push( bild5.gif );
 	 
     		arr.push(  );
 	 
 </script>
Peter SMedlem sedan dec. 20025 483 inlägg
#8

Då ligger det förmodligen ett tomt värde i den sista positionen i ASP-fältet. Testa att skriva ut det.

Red. Jag hade glömt ett par "snuffar" i de tidigare kodexemplen så dessa är nu redigerade.

:)

Peter SMedlem sedan dec. 20025 483 inlägg
#9

För att ge ett exempel på din andra fråga angående timern:

<script type="text/javascript">
<!--

var arr = [];

<%
Dim i

For i=0 To UBound(arre) Step 1 %>
     arr.push( "<%=arre(i) %>" );
<% Next %>

[b]
function swapImg( n ){
	if( n == arr.length )
		n = 0;

	// Gör någonting med [i]arr[n][/i] här
	window.setTimeout( "swapImg("+ (n+1) +")", 6000 );
};

swapImg(0);
[/b]

//-->
</script>

:)

tronezMedlem sedan juli 2001728 inlägg
#10

skulle du kunna förklara lite närmre vad den där koden gör?
är inte så haj på det här med javascript.

Peter SMedlem sedan dec. 20025 483 inlägg
#11

Självklart :bire

Den första delen av koden kopierar innehållet i ASP-fältet till ett JavaScript-fält.

I den andra delen av koden skapar jag en funktion, swapImg() som tar ett heltal som argument ( i detta fall ett heltal mellan 0 och storleken på JavaScript-fältet ).

I funktionen används metoden setTimeout() som var sjätte sekund anropar sig själv med ett argument i form av ett heltal som är ett större än tidigare. Första gången funktionen swapImg() körs, så gör den det med argumentet 0 vilket innebär att du kan arbeta med arr[0] inne i funktionen ( d.v.s. "bild1.gif" ). Nästa gång funktionen anropas gör den det med argumentet 1. Gången efter det med 2 o.s.v. När den har nått storleken på JavaScript-fältet sätts variabeln n till 0 och proceduren börjar om.

Blev det rörigt?

:)

tronezMedlem sedan juli 2001728 inlägg
#12

nja det var bra förklarat men jag har letat efter hur man ska få ut en bild i html koden i javascript , hur gör man det

Peter SMedlem sedan dec. 20025 483 inlägg
#13

Ok, då tar vi en titt på följande rad i koden:

...
// Gör någonting med arr[n] här
...

arr[n] representerar alltså ett bildnamn, t.ex.: "bild1.gif". För att applicera detta på något element i HTML-koden ändrar vi ovanståden kodrad till:

...
document.getElementById( "foo" ).src = arr[ n ];
...

Och sedan skapar vi ett bildelement någonstans på sidan vars id-värde är "foo":

...
<img src="bild6.gif" height="100" width="100" id="foo">
...

Slutligen ändrar vi följande rad:

swapImg(0);

Till detta för att sidan skall hinna läsa in bildelementet:

window.onload = function(){
     swapImg(0);
};

Fullständig kod:

<script type="text/javascript">
<!--

var arr = [];

<%
Dim i

For i=0 To UBound(arre) Step 1 %>
     arr.push( "<%=arre(i) %>" );
<% Next %>

function swapImg( n ){
	if( n == arr.length )
		n = 0;

	document.getElementById( "foo" ).src = arr[ n ];
	window.setTimeout( "swapImg("+ (n+1) +")", 6000 );
};

window.onload = function(){
	swapImg(0);
};

//-->
</script>

...

<img src="bild6.gif" height="100" width="100" id="foo">

:)

tronezMedlem sedan juli 2001728 inlägg
#14

vad kan man säga..... tack för all hjälp.... och för att du orkar ta dig tid med mig hehe :birp

Peter SMedlem sedan dec. 20025 483 inlägg
#15

:bire

tronezMedlem sedan juli 2001728 inlägg
#16

ett litet problem till bara =)

när den har gått igenom alla bilder, så blir det en bild som inte finns, även fast jag gjorde en bild som finns när jag skapade <img src=..... id=foo>

hur kommer man runt det problemet?

Peter SMedlem sedan dec. 20025 483 inlägg
#17

Är det det tidigare problemet som spökar? Testa isåfall med att lägga till -1 efter UBound(...), d.v.s.:

...
UBound(...)-1
...

:)

tronezMedlem sedan juli 2001728 inlägg
#18

gudabenådat! =) du e riktigt bra på det här :birp

en till fråga: Funkar detta i alla webbläsare? Mozilla , Netscape å allt vad dom heter?

Peter SMedlem sedan dec. 20025 483 inlägg
#19

Det är testat att fungera i MSIE 6, Mozilla samt Opera 7. Det *bör* även fungera i MSIE 5-5.5.

:)

tronezMedlem sedan juli 2001728 inlägg
#20

det lät kanon det.... tack än en gång för hjälpen :birp

134 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)