• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Handler wenn Bild nicht geladen werden kann

mikdoe

Moderator
Hi!

Hier wird alle paar Sekunden ein Bild von einer Kamera neu geladen mit dieser Funktion:
HTML:
var webcam_reload = function(zielnode,url,flag_img) {

	var grafik;

	if (flag_img) {
		grafik = document.createElement('img');

		var wi = jQuery(zielnode).width();
		var he = jQuery(zielnode).height();
		var c_wi = 640;
		var c_he = 480;

		if (c_wi > wi) {
			var divi = c_wi/wi;
			c_wi = c_wi/divi;
			c_he = c_he/divi;
		}
		if (c_he > he) {
			var divi = c_he/he;
			c_wi = c_wi/divi;
			c_he = c_he/divi;
		}

		c_wi = parseInt(c_wi,10);
		c_he = parseInt(c_he,10);

		grafik.style.width = c_wi+'px';
		grafik.style.height = c_he+'px';
		zielnode.appendChild(grafik);
	}
	else {
		grafik = zielnode.firstChild;
	}

	grafik.src = url+'?nochache='+(new Date).getTime();

	// Wiederholungen
	grafik.onload = function() {
		setTimeout(
			function() { webcam_reload(zielnode,url,false) },
			param.time_wait
		);
	};
};

Was muss ich ändern, damit auch dann neu geladen wird (dann aber erst nach Ablauf einer Minute und nicht schon nach param.time_wait), wenn das Laden fehlgeschlagen ist, weil z. B. die Kamera gerade offline ist? Gibt es einen Eventhandler o. ä. für diesen Fall?

Danke
 
Das probiere ich aus. Danke dir!

Und letzte Frage: kann ich dem Laden des Bildes mit grafik.src = url+.... einen Timeout setzen?
 
Nein, den Timeout bestimmt der Browser. Bei einem XHR kannst du den Timeout setzen, aber dann musst du das komplizierter in das <img> bekommen...

Aber du kannst dir natürlich per setTimeout was selbst zusammenbauen.
 
Zurück
Oben