2016-10-28 3 views
0

Wie kann ich Bilder mit demselben Klassennamen erneut laden?So laden Sie Bilder nach Klassennamen neu - JavaScript oder Jquery

habe ich versucht, dies aber nicht aktualisiert die Bilder:

<img class="refresh" src="http://www.w3schools.com/jsref/bulbon.gif"></img> 
<img class="refresh" src="http://www.w3schools.com/images/colorpicker.png"></img> 

// javascript: // 
a=document.getElementsByClassName(refresh); 
for(var c=0;c<a.length;c++)a[c].src=a[c].src; 

Hoffnung die Frage

+0

Was erhoffen Sie sich von "erfrischend" die Bilder zu erreichen? Browser-Cache-Ressourcen. –

+0

@FelixKling Ich habe ein Projekt für Regen und Staub .. ect, Karten und es alle 5 Minuten aktualisieren – anmml

+0

Vielleicht einen zufälligen Parameter an die URL anhängen, um das erneute Einlesen zu erzwingen? –

Antwort

1

Sie Ihr Bild klar ist, durch Ersetzen des src mit URL-Parameter wie diese aktualisieren können.

window.onload = function() { 
 
    setInterval(function() { 
 
    var imgs = document.querySelectorAll('.refresh'); 
 
    if (imgs) { 
 

 
     for (var i = 0, length = imgs.length; i < length; i++) { 
 
     var pt = /\?v=.+/g; 
 
     if (imgs[i].src) { 
 
      pt.test(imgs[i].src) 
 
      ? imgs[i].src = imgs[i].src.replace(pt, "?v=" + Date.now()) 
 
      : imgs[i].src = imgs[i].src + "?v=" + Date.now(); 
 
     } 
 
     } 
 

 
    } 
 
    }, 1000 * 60 * 5); 
 

 
};
<img class="refresh" src="http://www.w3schools.com/jsref/bulbon.gif"></img> 
 
<img class="refresh" src="http://www.w3schools.com/images/colorpicker.png"></img>

+0

Bitte erläutern Sie Ihre Lösung. Auch das hängt bei jedem Klick an die URL an: "http: //www.w3schools.com/images/colpicker.png? V = 1477615789834? V = 1477615790233? V = 1477615791337? V = 1477615794537". Sie können stattdessen 'this.getAttribute ('src')' verwenden. –

+0

@FelixKling Es tut mir leid. Ich werde es reparieren. Thaks – DININDU

+0

Vielen Dank, bitte bearbeiten Sie es, um die Bilder alle 5 Minuten automatisch zu aktualisieren – anmml

0

Vielleicht:

var a = document.getElementsByClassName('refresh'); 
for (var c = 0; c < a.length; c++) { 
    var n = a[c].src.indexOf("?"); if (n == -1) {n = a[c].src.length;} 
    a[c].src = a[c].src.substring(0, n)+"?n="+Date.now(); 
} 
Verwandte Themen