Bild mit JavaScript neu laden?

  • Habe hier ein dynamisches Bild welches sich ändert und neu geladen werden soll.

    Beim IE geht das ja mit:

    Code
    document.getElementById('Pic').src = 'Pic.jpg';

    Muss ich dem FF noch irgendwas mitgeben, dass er das gleiche Bild noch mal laden soll?

  • Zitat von phunkydizco

    Muss ich dem FF noch irgendwas mitgeben, dass er das gleiche Bild noch mal laden soll?


    Ähm. Hä? Du möchtest also eine Grafik mit dem namen Pic.jpg nochmal mit einer Pic.jpg überschreiben, die in zwischen ersetzt wurde, oder was? Also den Cache zu übergehen, oder wie jetzt?

  • Unabhängig davon sollte es mit deiner Syntax auch mit FF funktionieren.

    Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1

    Eine Theorie sollte so einfach wie möglich sein, aber nicht einfacher. (A. Einstein)

  • Ich habe die Erfahrung gemacht, dass der Firefox das Bild nicht ändert, wenn die Adresse gleich bleibt.

    Als Workaround kannst du meistens folgendes nehmen:

    Code
    document.getElementById('Pic').src = 'Pic.jpg?t=' + irgendwasZufälliges;

    irgendwasZufälliges sollte mit ner Zufallszahl, der aktuellen Zeit oder sonstwas einmaligem gefüllt sein.

  • Kann mir jemand sagen, wieso ich bei diesem Code,

    Code
    var d = new Date();
    
    
    document.getElementById('Pic').src = 'Pic.jpg?t=' + d.getMinutes + d.getSeconds + d.getMilliseconds;
    
    
    alert(d.getMinutes + d.getSeconds + d.getMilliseconds);

    das hier als Meldung bekommen?

    [Blockierte Grafik: http://snakysnake.gmxhome.de/firefox/Date.jpg]

    Dem nach wird das Bild beim ersten Mal neu geladen aber dann nicht mehr, da sich ja die Uhrzeit nicht ändert.

  • Echt blöd wenn man vor lauter Klammern die Buchstaben nicht sieht. So ist es natürlich richtig:

    Code
    d.getMinutes() + d.getSeconds() + d.getMilliseconds()

    Aber jetzt ist etwas anders aufgefallen. Und zwar liefert:

    Code
    d.getMonth()

    heute eine 10.

    Das ist doch komisch.

  • Zitat von phunkydizco

    Aber jetzt ist etwas anders aufgefallen. Und zwar liefert:

    Code
    d.getMonth()

    heute eine 10.

    Das ist doch komisch.


    Das ist zwar gewöhnungsbedürftig weil die Monatszählung mit 0 beginnt, aber so ist es halt definiert.

    http://de.selfhtml.org/javascript/objekte/date.htm#get_month

    Zitat

    Liefert den Monat des Objekts Objektname als Zahl zurück, beispielsweise 9, wenn in Objektname der 2.10.1991, 23:59:00, gespeichert ist. Beachten Sie, dass die Monatszählung bei 0 beginnt. 0 ist also Januar, 1 ist Februar usw.


    Gruß
    Werner