Max: dynamisch erzeugte Bilder ersetzen....

Hallo.
Tut mir leid, dass ich mal wieder störe, aber ich komme hier einfach nicht weiter :(

Ein Script soll automatisch 3 Bilder in einer Tabelle darstellen. Doch sobald ein Bild "broken" ist, soll dieses Bild durch ein Standart-Bild ersetzt werden. Folgenden Code habe ich bereits - und er klappt auch, bis auf dass das Bild nicht wieder in die Tabelle geschrieben und mit den anderen Bildern weitergemacht wird.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE></TITLE>

<script type="text/javascript">
<!--
function Korrektur(c)
{ document.write('<img src="' + c + '" id="StandartBild">'); }

function Fehler(b)
{
var BildID = "Bild" + b;
var BildPfad = "pic" + b;
var BildPos = document.getElementById(BildID).src;
var Standart = BildPos.replace(BildPfad,"standart");
Korrektur(Standart);
}
//-->
</script>

</HEAD>

<BODY>

<script type="text/javascript">
<!--
document.write('<table>');
for(var i=0; i<3; i++)
  {
  document.write('<td><img id="Bild' + i + '" src="pic' + i + '.jpg" onError="Fehler(' + i + ')"></td>');
  }
document.write('</table>');
//-->
</script>

</BODY>
</HTML>

Die Funktion Korrektur() war ein Verzweiflungs-Versuch. Der Rest müsste allerdings grob richtig sein.
Meine Frage ist nun: Wie sagt man der Funktion Fehler(), dass sie das ersetzte Bild (standart.jpg) in die Tabelle der Funktion Generate() schreiben soll, und danach die Funktion Generate() mit dem nächsten Bild weitermachen soll?

Vielen Dank schon mal für jede Hilfe!

MfG

Max

  1. Meine Frage ist nun: Wie sagt man der Funktion Fehler(), dass sie das ersetzte Bild (standart.jpg) in die Tabelle der Funktion Generate() schreiben soll, und danach die Funktion Generate() mit dem nächsten Bild weitermachen soll?

    dein Problem ist, dass du mit document.write() immer das ganze Dokument beschreibst und damit auch das JS. Du musst entweder Frames verwenden oder mit Layern arbeiten.

    Struppi.

  2. Hi,

    Ein Script soll automatisch 3 Bilder in einer Tabelle darstellen. Doch sobald ein Bild "broken" ist, soll dieses Bild durch ein Standart-Bild ersetzt werden. Folgenden Code habe ich bereits - und er klappt auch, bis auf dass das Bild nicht wieder in die Tabelle geschrieben und mit den anderen Bildern weitergemacht wird.

    Ich glaub, ich verstehe was Du meinst.

    Versuch doch mal folgenden Quelltext:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE></TITLE>

    </HEAD>

    <BODY>

    <script type="text/javascript">
    <!--
    document.write('<table>');
    for(var i=0; i<3; i++)
      {
      alert('pic' + i + '.jpg')
      document.write('<td><img id="Bild' + i + '" src="pic' + i + '.jpg" onError="this.src='standart.jpg.jpg'"></td>');
      }
    document.write('</table>');
    //-->
    </script>

    </BODY>

    Dadurch wird die Schleife mit dem document.write nicht unterbrochen wenn das Bild fehlt, wie in Deiner Variante geschieht.

    Grüße,

    Rony

    1. Hi,

      Uppsi! Fehler im Quelltext. Ein alert() zu viel, die <tr>s vergessen und jpg.jpg. getippt.

      So paßt es besser:

      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
      <HTML>
      <HEAD>
      <TITLE></TITLE>

      </HEAD>

      <BODY>

      <script type="text/javascript">
      <!--
      document.write('<table><tr>');
      for(var i=0; i<3; i++)
        {
        alert(i);
        document.write('<td><img id="Bild' + i + '" src="pic' + i + '.jpg" onError="this.src='standart.jpg'"></td>');
        }
      document.write('</tr></table>');
      //-->
      </script>

      </BODY>

      Grüße,

      Rony

      Und die scheiß Tastatur hat ein "n" gefressen !

      Grüße,

      Ronny

      1. Ja. Vielen Dank.
        Werde es mal ausprobieren, wenn ich aus der Schule komme.

        Danke!