Avatar billede Slettet bruger
09. juni 2010 - 16:55 Der er 5 kommentarer og
1 løsning

Javascript med slideshow i Firefox

Jeg har et slideshow på en asp side. Den er i javascript. Den henter billederne i databasen, og det hele virker rigtig fint i IE, men i Firefox og Crome vil den ikke vises. Er der nogen der kan sige hvad jeg skal gøre for at det virker i alle browsere?



Scriptet ser sådan ud:


<SCRIPT type=text/javascript>

// The list of images to display in the slideshow
//creating a array of the image object
var image=new Array(<%if not RSobjekter("img1") = "intet-billede.jpg" then%>"images/objekter/<%=(RSobjekter("img1").Value)%>"<%end if%>
                    <%if not RSobjekter("img2") = "intet-billede.jpg" then%>,"images/objekter/<%=(RSobjekter("img2").Value)%>"<%end if%>
                    <%if not RSobjekter("img3") = "intet-billede.jpg" then%>,"images/objekter/<%=(RSobjekter("img3").Value)%>"<%end if%>
                    <%if not RSobjekter("img4") = "intet-billede.jpg" then%>,"images/objekter/<%=(RSobjekter("img4").Value)%>"<%end if%>
                    <%if not RSobjekter("img5") = "intet-billede.jpg" then%>,"images/objekter/<%=(RSobjekter("img5").Value)%>"<%end if%>
                    <%if not RSobjekter("img6") = "intet-billede.jpg" then%>,"images/objekter/<%=(RSobjekter("img6").Value)%>"<%end if%>
                    <%if not RSobjekter("img7") = "intet-billede.jpg" then%>,"images/objekter/<%=(RSobjekter("img7").Value)%>"<%end if%>
                    <%if not RSobjekter("img8") = "intet-billede.jpg" then%>,"images/objekter/<%=(RSobjekter("img8").Value)%>"<%end if%>
                    <%if not RSobjekter("img9") = "intet-billede.jpg" then%>,"images/objekter/<%=(RSobjekter("img9").Value)%>"<%end if%>
                    <%if not RSobjekter("img10") = "intet-billede.jpg" then%>,"images/objekter/<%=(RSobjekter("img10").Value)%>"<%end if%>
                    <%if not RSobjekter("img11") = "intet-billede.jpg" then%>,"images/objekter/<%=(RSobjekter("img11").Value)%>"<%end if%>
                    <%if not RSobjekter("img12") = "intet-billede.jpg" then%>,"images/objekter/<%=(RSobjekter("img12").Value)%>"<%end if%>
                    <%if not RSobjekter("img13") = "intet-billede.jpg" then%>,"images/objekter/<%=(RSobjekter("img13").Value)%>"<%end if%>
                    <%if not RSobjekter("img14") = "intet-billede.jpg" then%>,"images/objekter/<%=(RSobjekter("img14").Value)%>"<%end if%>
                    <%if not RSobjekter("img15") = "intet-billede.jpg" then%>,"images/objekter/<%=(RSobjekter("img15").Value)%>"<%end if%>
                    <%if not RSobjekter("img16") = "intet-billede.jpg" then%>,"images/objekter/<%=(RSobjekter("img16").Value)%>"<%end if%>
                    <%if not RSobjekter("img17") = "intet-billede.jpg" then%>,"images/objekter/<%=(RSobjekter("img17").Value)%>"<%end if%>
                    <%if not RSobjekter("img18") = "intet-billede.jpg" then%>,"images/objekter/<%=(RSobjekter("img18").Value)%>"<%end if%>
                    <%if not RSobjekter("img19") = "intet-billede.jpg" then%>,"images/objekter/<%=(RSobjekter("img19").Value)%>"<%end if%>
                    <%if not RSobjekter("img20") = "intet-billede.jpg" then%>,"images/objekter/<%=(RSobjekter("img20").Value)%>"<%end if%>
                    )
               
//variable that will increment through the images
var num=0

// set the delay between images
var timeDelay

//preload the images in the cache so that the images load faster
//create new instance of images in memory

var imagePreload=new Array()
for (i=0;i<image.length;i++)
{
  imagePreload[i]=new Image()
// set the src attribute
imagePreload[i].src=image[i]
}

//function to get the previous image in the array
function previous_image()

  //code to execute only when the automatic slideshow is disabled
  if (slideshow.checked==false)
  {
    if (num>0)
    {
      num--
     
      //set the SRC attribute to let the browser load the preloaded images
      document.images.slideShow.src=image[num]
    }
    if (num==0)
    {  //if first image is displayed
      num=image.length
      num--
     
      document.images.slideShow.src=image[num]
    }
  } 
}

//function to get the next image in the array
function next_image()
{
  //code to execute only when the automatic slideshow is disabled
  if (slideshow.checked==false)
  {
    if (num<image.length)
    {
      num++
      //if last image is reached,display the first image
      if (num==image.length)
      num=0
     
        //set the SRC attribute to let the browser load the preloaded images
      document.images.slideShow.src=image[num] 
    }
  }
}

//for automatic Slideshow of the Images
function slideshow_automatic()
{
if (slideshow.checked)
  {
    if (num<image.length)
    {
      num++
      //if last image is reached,display the first image
      if (num==image.length)
      num=0
     
      //sets the timer value to 4 seconds,we can create a timing loop by using the setTimeout method
      timeDelay=setTimeout("slideshow_automatic()",6000)
      document.images.slideShow.src=image[num] 
    }
  } 
  if (slideshow.checked==false)
  {
    //Cancels the time-out that was set with the setTimeout method.
      clearTimeout(timeDelay)
  }
}

</SCRIPT>
Avatar billede Slettet bruger
09. juni 2010 - 17:30 #1
Det ville være let(tere) at afgøre hvis vi ku' se det i drift, er det en mulighed ?
Avatar billede Slettet bruger
09. juni 2010 - 21:06 #2
Jamen kan du da få...det er på siden http://ejwebsite.dk/sitename.asp?id=12&type=klubben3&lang=
Avatar billede Slettet bruger
09. juni 2010 - 21:06 #3
Avatar billede Slettet bruger
09. juni 2010 - 22:33 #4
Hm.. det er mere overraskende at det faktisk virker i iE.

I firefox er problemet (i første omgang) at variablen slideshow ikke er defineret. Den optræder et par steder:

if (slideshow.checked==false)

Det er muligt at den defineres "via" include-filen stmenu.js - men ordet "slideshow" findes ikke i dén fil - og koden i den er skrumlet sammen på én linje, så den er ikke så sjov at "debugge" i.

Der er andre iE-only stumper (møg-kode) på siden:

style="filter:revealTrans(duration=2,transition=23)"
og
document.images.slideShow.src=...

Det virker i det hele taget som om den slideshow-kode du har fundet er 5-10 år gammel. Jeg tror, ærligt talt, ikke det kan "betale sig" at bokse med det : (
- Hvis jeg var dig, ville jeg finde noget bedre (og bruge Firefox under udviklingen, i stedet for iE)


SÅ, det var nok ikke lige det du ønskede at høre - men sandheden : )
Avatar billede Slettet bruger
09. juni 2010 - 22:38 #5
Det svar er jo ikke til nogen hjælp, så jeg kom ikke videre.

Den har virket, i Firefox, men et eller andet er sket, så den ikke gør det nu.

Jeg afventer og ser om der er en der gider hjælpe.

Tak for svaret.
Avatar billede Slettet bruger
14. juni 2010 - 23:13 #6
har selv fundet løsningen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester