Michael Brendel: Imageverwaltung unter Mozilla

Beitrag lesen

Folgendes Problem:
-------------------
Ich möchte mittels JavaScript zur Laufzeit den verfügbaren Platz im Browser für ein Bild berrechnen und mir dann ein Bild mittels eines Servlet in eben dieser Grösse ausgeben lassen. Die Anwendung soll es erlauben, den verfügbaren Platz zur Laufzeit zu verändern (ausblenden von NavigationsLeiste, etc.)

Folgender Code funktionier dabei bestens unter den aktuellen Browsern IE und Opera, aber leider nicht unter Mozilla.

JavaScript-Funktion:
--------------------
...
function appendWindowSizeOnURL(url) {
  url=url +
      "?width="+document.getElementById("imageHolder").offsetWidth+
      "&height="+document.getElementById("imageHolder").offsetHeight;
  document.getElementById("image").setAttribute("src", url);
  return;
}
...

Aufruf im HTML:
--------------------
...
<td align="center" id="imageHolder" width="100%">
  <img src="javascript:appendWindowSizeOnURL('ImageServlet');" id="image" width="100%" />
</td>
...

Nach dem Ausführen des Scripts sieht das Image-Element etwa so aus: <img src="ImageServlet?width=800&height=460" id="image" width="100%" />

Das Servlet macht nun nichts weiter, als das Bild auf eben jene Werte zu skalieren und als Quelle bereitzustellen.
Das eigentliche Problem liegt nun darin, dass Mozilla das Bild nach einem Klick auf einen Link, der die verfügbare Grösse verändert und somit den Reload des Bildes mit den neuen Parametern erfordert, nicht mehr anzeigt. Es gibt aber weder eine Fehlermeldung vom Browser (Bild nicht gefunden) oder vom Javascript. Es wird auch gar nicht erst die Funktion appendWindowSizeOnURL(url) aufgerufen.
Erst ein Druck auf die F5-Taste bzw. ein manueller Reload der Seite lösen das Problem. Allerdings ist diese Massnahme nicht erwünscht.

Ich hoffe, dass mein Problem Verstanden wurde und mir jemand bei diesem kniffligen Fall weiterhelfen kann.

MfG
Michael Brendel