Avatar billede Mathias5148 Nybegynder
10. april 2007 - 15:08 Der er 5 kommentarer og
1 løsning

Opdater billed hvert minut?

Hej

jeg har en hjemmeside (hmm mærkeligt? jeg har 3 ... anyway)

på en side som jeg er ved at lave har jeg 3 billeder der er "Dynamiske" men de står jo bare der og ikke opdater og så skal man selv klikke på f5  hver gang (lettere sagt.. jeg laver en side i php der connecter til en spil server og samler oplysninger ud og smider i en png billed)

jeg har prøvet den kendte opdaterings script man smider blandt sine meta koder.. men den glemmer at opdatere billederne da de fleste browser er dem som billeder der ikke ændre sig (med mindre man ændre fil navnet...)

mit spørgmål er altså:
Hvordan får man tre billeder til at opdater sig hvert minut og så browseren virkelig opdater dem hver gang

(hmm ja krav har jeg to af: Skal virker i de fleste browser..IE,firefox,opera... Lader de andre billeder være (2 MB billeder kan være tungt for nogle...))

/Mathias
ps. Håber ikke jeg har skrevet alt forvirrende :)
Avatar billede roenving Novice
10. april 2007 - 15:18 #1
F.eks.

<script type="text/javascript">
var imgs = [];
window.onload = function(){
  imgs[imgs.length] = document.getElementById("billede1").src;
  imgs[imgs.length] = document.getElementById("billede2").src;
  imgs[imgs.length] = document.getElementById("billede3").src;
  setInterval('updatePics()',60*1000);//60 sekunder
}
function updatePics(){
  var t = new Date().getTime();
  document.getElementById("billede1").src = imgs[0] + "?t=" + t;
  document.getElementById("billede2").src = imgs[1] + "?t=" + t;
  document.getElementById("billede3").src = imgs[2] + "?t=" + t;
}
</script>
Avatar billede mcardle Nybegynder
11. april 2007 - 05:43 #2
Du kan også gøre det på denne her måde. Det er meget kode, men hvis du skal skifte billederne eller tilføje flere så kan du bare lægge dem ind i mappen images. Den finder selv alle navnene og har ingen begrænsninger.

Her er den så.

<html>
    <head>
        <title>Testside</title>
        <?php
       
        $dir = dir("images");
       
        # Hvilket filer
        $t1 = ".jpg";
        $t2 = ".gif";
        $t3 = ".png";
       
        $xmlFile = fopen("xml_array.xml","w");
        $dtd = '<?xml version="1.0" encoding="ISO-8859-1" ?>'."\r\n\r\n";
        $rootStart = '<pictures>'."\r\n";
        $rootEnd = '</pictures>'."\r\n";
        fwrite($xmlFile,$dtd);
        fwrite($xmlFile,$rootStart);
       
        while(false !== ($file = $dir->read())){
            if($file != "." && $file != ".." && $file != "Thumbs.db"){
                if(substr($file,-4) == $t1 || substr($file,-4) == $t2 || substr($file,-4) == $t3){
                    $content = '<pic>'."\r\n";
                    $content .= "\t";
                    $content .= '<path>'.$file.'</path>'."\r\n";
                    $content .= '</pic>'."\r\n";
                    fwrite($xmlFile, $content);
                }
            }
        }
       
        fwrite($xmlFile,$rootEnd);
        fclose($xmlFile);
       
        $dir->close();
       
        ?>
       
        <script type="text/javascript">
            function importXML(){
                if(document.implementation && document.implementation.createDocument){
                    xmlDoc = document.implementation.createDocument("", "", null);
                }
                else if(window.ActiveXObject){
                    xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
                }
                else{
                    alert('Your browser can\'t handle this script');
                    return;
                }
                xmlDoc.load("xml_array.xml");
            }
           
            function doit(){
                clearTimeout(t);
                var x = xmlDoc.childNodes(1).childNodes.length;
                var i = Math.floor(Math.random()*x);
                if(document.getElementById){
                    document.getElementById("picFrame").src = "images/" + xmlDoc.childNodes(1).childNodes(i).text;
                }
                else{
                    document.layer("picFrame").src = "images/" + xmlDoc.childNodes(1).childNodes(i).text;
                }
                setTimeout("doit()", 60000);
            }
           
            var t = setTimeout("doit()", 60000);

            window.onload = importXML(), t;
        </script>
    </head>
<body>

<img src="default.gif" alt="" id="picFrame">

</body>
</html>

Det kræver 2 ting, at du opretter en mappe der hedder images og at du har et startbillede. Startbilledet kan være et der ligger uden for mappen eller inde i det er ligemeget. Du skal bare huske at sætte stien i img-tagget.
Avatar billede mcardle Nybegynder
11. april 2007 - 05:45 #3
Hehe, bare glem mit indlæg... Af en eller anden grund virker det ikke i Firefox.
Avatar billede mcardle Nybegynder
11. april 2007 - 05:55 #4
Det skal se sådan her ud:

document.images['picFrame'].src

Men kan stadig ikke få det til at virke, så brug roenvings.
Avatar billede Mathias5148 Nybegynder
19. november 2010 - 02:03 #5
puuuha! 2007... vidst på tide den her spm bliver lukket, kan ikke engang huske hvad projekt jeg lavede.. hehe

roenving smid et svar så får du points..
Avatar billede Mathias5148 Nybegynder
07. februar 2012 - 10:00 #6
Lukker den her, for at få den lukket. Beklager hvis nogen bliver snydt for points.

Ha' en god dag.
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