Bild src von Kamera laden

MaxZwo

Grünschnabel
Stehe vor folgendem Problem:

Bild wird von extern (Kamera) geladen, in dem eine Function aufgerufen wird. Function befindet sich im Javascript Tag.
function paintnew()
{document.all.picture1.src= "http://bildurl/cgi-bin.cgi-proxy?cmd=snapPicture&user=username&pwd=passwort"; }
Erstes Laden funktioniert. Live-Bild wird von Kamera geholt.

Im Body des html steht
<img src= "http://bildurl/cgi-bin.cgi-proxy?cmd=snapPicture&user=username&pwd=passwort";
style="width: 98%"; style="cursor.ointer" name="picture1" onMouseDown="paintnew()"; />

Es wird aber kein neues Bild angezeigt. Rescherschen ergeben, dass das Bild im Cache geladen wird und von dort wieder selbiges Bild verwendet wird. Auch der html Tag im Head <meta http-equiv="pragma" content="no-cache"/> nützt nichts. Es wird nicht erneut geladen. HINWEIS: Ich musste die Doppelpunkte im Code durch Punkt ersetzen, ansonsten wäre hier automatisch ein Smily eingefügt worden.

Bitte - wer kann mir helfen. Danke.
 
Zuletzt bearbeitet:
Wenn es sich um den Cache das Browsers handelt, kannst Du ein Neuladen erzwingen indem Du einen Zeitstempel an die URL anhängst:
Code:
function paintnew() {
    document.all.picture1.src= "http://bildurl/cgi-bin.cgi-proxy?cmd=snapPicture&user=username&pwd=passwort&t=" + Date.now();
}

HINWEIS: Ich musste die Doppelpunkte im Code durch Punkt ersetzen, ansonsten wäre hier automatisch ein Smily eingefügt worden.
Das kannst Du vermeiden, wenn Du Codetags verwendest: Das kleine Menüsymbol oben rechts von dem Landschaftssymbol und dann </>.

Du bist im falschen Unterforum: Java ist etwas anderes als Javascript.
 
Vielen Dank für Deine Antwort und den funktionierenden Hinweis. Einfach, aber genial. Funktioniert bei Foscam Kameras einwandfrei. Die Sinocam IPC Kamera akzeptiert den Zeitstring nicht. Foscam schon.
 
Die Sinocam IPC Kamera akzeptiert den Zeitstring nicht.
In dem Fall würde ich versuchen, es serverseitig mit PHP abzuwickeln und das Bild jeweils mit file_get_contents zu laden. Das hat zusätzlich den Vorteil, dass deine Zugangsdaten im Browser nicht eingesehen werden können.
 
Das habe ich tatsächlich in meiner Variante B schon programmiert. Mit php file_get() frage ich alle 6 Sekunden, ob sich ein neues Bild auf dem Server (meine NAS) befindet. Kamera sendet die SnapShot bei Bewegungserkennung. Ist dies der Fall, dann wird es unter dem Namen Bild.jpg geladen und mit <img src = "http:// ....jpg"> gezeigt. Nachteil: Ich muß die html Datei index.php immer wieder neu aufrufen mit {location.reload();} und setTimeout(). Das ergibt ein lästiges Blinken des Bildes. Vielleicht gibt es auch hierfür den genial einfachen Trick. Herzlichen Dank.
 
Wenn ich das jetzt richtig verstehe, legt das PHP-Skript das Bild immer unter dem selben Dateinamen ab. Das lästige Blinken kannst Du vermeiden, indem Du nur das Bild mit Javascript aktualisierst statt die ganze Seite neu zu laden:
Code:
setInterval(() => {
    document.getElementById('id-des-img-tags').src = 'Bild.jpg?t=' +Date.now();
}, 6000);
Und wenn ich mich richtig erinnere, funktioniert das sogar, wenn der Dateiname des Bildes immer der selbe ist, d. h. auch ohne Zeitstempel, aber ich bin mir nicht sicher. Teste es aus.
 
Zurück