tronezMedlem sedan juli 2001728 inlägg 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 <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 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 UBound skall fungera; fick du något felmeddelande?
:)
tronezMedlem sedan juli 2001728 inlägg
Feltyp:
Körningsfel i Microsoft VBScript (0x800A000D)
Inkompatibla typer: 'UBound'
/gey/index.asp, line 35
Peter SMedlem sedan dec. 20025 483 inlägg 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 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 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 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 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 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 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 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 vad kan man säga..... tack för all hjälp.... och för att du orkar ta dig tid med mig hehe :birp
tronezMedlem sedan juli 2001728 inlägg 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 Ä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 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 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 det lät kanon det.... tack än en gång för hjälpen :birp