Horst Nogajski: "images.src" dynamisch ändern (Anfänger sucht Hilfe)

Hallo Forum.

Ich habe schon die ForumSuchmaschine durchforstet,
aber keine Loesung gefunden.

Das folgende JavaScript soll innerhalb eines (aus 2 Frames bestehenden)
FrameSets von Frame1 aus in Frame2 (name="picts") ein Bild (name="bild") tauschen.
(Das Frameset selber ist ein Frameset im Frameset, deshalb benutze ich "parent" und nicht "top").

HeadTeil:  

function framesetbildwechsel(x,y){  

var is_ziel = (parent.picts.document.bild!=-1);
  if(is_ziel){
     neuesbild = "../bilder/" + x + y + ".jpg";
     parent.picts.document.bild.src = neuesbild;
  }
}

BodyTeil:  

<a href="javascript:framesetbildwechsel('a','1')">  

<img src="../bilder/a1_thumb.gif"></a>

Mit dem Funktionsaufruf werden die Parameter (x,y) zur Dateinamenerstellung
des Bildes "neuesbild" uebergeben.
Dann wird geprueft, ob im Frame (name="picts") das Bild (name="bild")
ueberhaupt existiert.
Wenn JA, dann wird es getauscht.

So ist der Plan.

Der InternetExplorer machts, der NetscapeNavigator nicht.

Warum macht der Netscape das nicht?
Er gibt auch keine Fehlermeldung aus.

Kann mir jemand helfen?

Vielen Dank im Voraus.

Horst Nogajski

  1. Hi,

    var is_ziel = (parent.picts.document.bild!=-1);

    Dann wird geprueft, ob im Frame (name="picts") das Bild

    »»(name="bild") ueberhaupt existiert.

    eben nicht ,) (parent.picts.document.images.bild != -1) sollte zwar True, bzw False zurueck geben, ist aber unsauber - das muss schon in
    einen Bedingten Ausdruck und du hast das images-Objekt vergessen;
    richtig saehe es z. B. so aus:

    var is_ziel = parent.picts.document.images.bild ? 1 : 0;

    Der Rest sieht richtig aus, sollte funzen - abgesehen davon, dass
    du die Bilder ueber das images-Objekt ansprechen musst:

    document.images[bild].src = "neue_url";
    oder
    document.images.bild.src = "neue_url";

    Der NN kann naemlich eben NICHT jedes Element in einem Document
    ansprechen.

    mfg
    CK1

    1. Hallo Christian,

      Vielen Dank erstmal.

      Ich habe deine Ratschlaege befolgt, und herumprobiert:

      -Die Abfrage ob das Bild vorhanden ist, wie Du Sie vorschlaegts ist perfekt.

      »» var is_ziel = parent.picts.document.images.bild ? 1 : 0;

      • gibt eindeutig 1 oder 0 als Resultat.

      Der Rest sieht richtig aus, sollte funzen - abgesehen davon, dass
      du die Bilder ueber das images-Objekt ansprechen musst:

      document.images[bild].src = "neue_url";

      • Funktioniert nicht,   weder im Netscape noch im IE

      document.images.bild.src = "neue_url";

      • Funktioniert!     (bei beiden Browsern, natuerlich)

      Der Rest sieht richtig aus, sollte funzen -

      neuesbild = "../bilder/" + x + y + ".jpg";  
      parent.picts.document.images.bild.src = neuesbild;  
      
      • Tut er auch, ich hab' meinen HauptFehler gerade entdeckt:

      Als erstes Bild in der Zieldatei wurde ein 1x1 Pixel grosses
        tarnsparentes Gif geladen,
        wohlweislich OHNE GROeSSENANGABEN, weil ich dachte, das dann die
        nachgeladenen Bilder in ihren Hoch- und Querformaten
        verzerrungsfrei gezeigt werden.
        Was im InternetExplorer (den ich so liebe) auch so laeuft.
        Nur der Netscape "merkt sich Uebereifrigerweise" also die Groesse
        des vorhandenen Bildes und passt die nachgeladenen Bilder an dieses
        Format an.
        
        Deshalb, -alle Bilder muessen dann doch wieder die gleichen
        Aussenformate haben, auch ohne Groessenangabe!
        Schade.

      Gruss, Horst

      1. Hi Horst

        document.images[bild].src = "neue_url";

        • Funktioniert nicht,   weder im Netscape noch im IE

        Kann auch nicht, da bei dieser Angabe nach einer Variable!! mit dem Namen bild gesucht wird und die gibt es ja nicht.
        Ausserdem funktioniert auch:
        document.bild.src...
        Tschau Holger