Jens-Christof Niemeyer: Grafik per JavaScript ohne Größenangaben anzeigen

Hallo Gemeinde!

Mit diesem Problem schlage ich mir schon die ganze Nacht um die Ohren, auch dem Forums-Archiv konnte ich keine geeignete Antwort entlocken.

Zur Sache: Ich möchte auf einer HTML-Seite eine zufällig ausgewählte Grafik anzeigen. Benutzer sollen die Möglichkeit haben, sich per Knopfdruck an der gleichen Stelle eine andere Grafik anzeigen zu lassen, deren Abmessungen mit denen der vorigen nicht übereinstimmen. Die Abmessungen sind mir ferner nicht bekannt.

Dazu habe ich mir folgendes ausgedacht:

An der gewünschten Stelle definiere ich einen "Platzhalter":

<img src="" border="0" name="snapshot">

Dann kommt folgendes Skript zum Aufruf:

<script type="text/javascript" language="JavaScript">
<!--
  with (Math)
  {
    var selected = round(random()*27);
  }
  pic = new Image();
  pic.src = "img/digi/" + selected + ".jpg";
  document.snapshot.src = pic.src;
-->
</script>

(Im angegebenen Verzeichnis befinden sich die Dateien "0.jpg" bis "27.jpg".)

Wenn der Benutzer eine neue Grafik sehen will, drückt er hier drauf:

<a href="javascript:location.reload()">Neues Bild</a>

Mit MSIE klappt das, mit Opera auch. Nur Netscape weigert sich.

Was mache ich also falsch bzw. was sollte ich anders machen?

Bin für jeden Tipp dankbar und wünsche außerdem einen schönen Sonntag.

Gruß,

Jens.

  1. Hallo,

    das Problem liegt nur bedingt bei Dir. Wenn Du die Grafik austauscht, und der Browser soll die neue Grafik in der richtigen (neuen) Größe anzeigen, dann muß der Browser die Seite neu rendern. (vulgo: neu nachschauen, wie groß die Grafik ist und alle weiteren Elemnete der Seite daran anpassen....)... das macht (zumindest) der NS nicht.

    Ich weiß im Moment nur eine "Tesafilmlösung" (mit Tesafilm repariere ich hier immer alles ;-) ). Wenn es nicht zuviele Grafiken sind und selbige von Dir kommen, dann könntest Du die alle gleich groß "machen", indem Du die Maße des grösten nimmst und allen anderen im Grafikprogramm einen entsprechend großen Rahmen in der Hintergrundfarbe Deiner Seite verpast. (bis sie eben auch so groß sind, in der Mitte prangt dann das kleinere Bild....)

    Chräcker
    http://www.Stempelgeheimnis.de

    1. Hi Chräcker!

      Und danke für Deine Antwort.

      das Problem liegt nur bedingt bei

      Das beruhigt mich ein wenig.

      Ich gehe jetzt anders vor: Ich packe die gesamten IMG-Tag der anzuzeigenden Bilder in ein Array und bringe die Anweisung per document.write ins Dokument.

      Das funktioniert besser als meine ursprüngliche Lösung. Opera und MSIE tun klaglos ihren Dienst, Netscape zeigt die Bilder auch an. Neues Problem: Jetzt zeigt Netscape den Text unter dem Bild nur bei hochformatigen Grafiken an.

      Warum passiert das?

      Hier vorsichtshalber mal ein Link: http://www.jcniemeyer.de/foto/snapshot.html

      Wäre toll, wenn jemandem dazu was einfallen würde.

      Gruß,

      Jens.

      1. Neues Problem: Jetzt zeigt Netscape den Text unter dem Bild nur bei hochformatigen Grafiken an.

        Das Problem ist umschifft. Die width-Angabe einer der Tabellen, in die die die ganze "Pracht" eingebettet ist, scheint Netscape - warum auch immer - zu irritieren. Ohne diese Angabe werden Bilder und Text dargestellt. Zwar nicht mehr genauso, wie ich's mir gewünscht habe, aber man ist ja nicht sooo wählerisch. Hauptsache, es läuft überhaupt.

        Dank und Gruß,

        Jens.