Bernhard Helmes: zyklischer Bildertausch != dynamischer Bildertausch // schwierige Nuß

Hallo Lieben, ich grüße das Forum ganz herzlich

ich würde gerne einen zyklischen Bildertausch vornehmen.
Soll heißen: Ich will den Inhalt eines Bildes, das aber nicht feststeht, mit dem Inhalt eines anderen Bildes austauschen.
Den Tausch will ich mehrmals machen, d.h. ich muß vorher nachschauen, welche Bilder aktuell sind und die dann austauschen
Was ich bisher gefunden habe ist:
http://www.teamone.de/selfhtml/sfausles/tsfa_tbb.htm
das hilft mir aber nicht, weil die Bilder am Anfang feststehen.

Ich müßte, also erst den Bildsource "einlesen", was aber so nicht klappt:
temp = new Image();
temp.scr = window.document.images[0].scr
die Zuweisung scheitert, spätestens im Netscape.

Soweit ich verstanden habe, ist temp.scr nur ein Pointer und nicht der Inhalt.

Wer weiß Rat
Freue mich über Antwort

  1. Hi,

    temp = new Image();
    temp.scr = window.document.images[0].scr

    Hmm, wie wär's mit einem etwas längeren Quelltextausschnitt oder mit einem funktionierenden Link? Diese beiden Zeilen sollten jedenfalls keine Probleme machen, auch nicht im NN. (Wenn man mal davon absieht, dass Du so oft "scr" statt "src" schreibst, dass man kaum noch an ein Versehen glauben kann...)

    Gruß
    Steffen

    1. Hi,

      temp = new Image();
      temp.scr = window.document.images[0].scr

      Hmm, wie wär's mit einem etwas längeren Quelltextausschnitt oder mit einem funktionierenden Link? Diese beiden Zeilen sollten jedenfalls keine Probleme machen, auch nicht im NN. (Wenn man mal davon absieht, dass Du so oft "scr" statt "src" schreibst, dass man kaum noch an ein Versehen glauben kann...)

      Gruß
      Steffen

      Der Aufruf, über die Htmlzeile würde mich interessieren, da ich gerade selber versuche, vorgeladene Bilder darzustellen, die aber nicht mit Mouseover angesteuert werden.
      THX Fabian

  2. Hi Bernhard,

    hier ist ein Stück Code, den ich mal gebastelt habe, um einen Bildwechsel abhängig von dem Bild, das gerade zu sehen ist, zu machen. Müsste zumindest in die Richtung dessen gehen was Du machen willst.
    Hier gibt es folgende Möglichkeiten: Es gibt mehrere versch. Ordner-Bilder - versch. aussehende offene, ein geschlossener. Die geschlossenen werden gegen die (passenden) offenen getauscht und umgekehrt. Dabei wird ausgelesen, ob im Augenblick ein offener oder geschlossener Ordner da ist.

    Erst das Vorladen:

    ordnerzu = new Image();
    ordnerzu.src = "../images/Ordner_zu.gif";

    ordnerallg = new Image();
    ordnerallg.src = "../images/Ordner_allgemein.gif";

    ordnerobjectif = new Image();
    ordnerobjectif.src = "../images/Ordner_objectiF.gif";

    usw.

    Dann die passende Funktion

    function folder(bildname, bildziel)
    {

    if(eval('document.' + bildname + '.src == ordnerzu.src'))
      {
        eval('document.' + bildname + '.src = ' + bildziel + '.src');
      }
    else if(eval('document.' + bildname + '.src == ' + bildziel + '.src'))
      {
        eval('document.' + bildname + '.src = ordnerzu.src');
      }
    }

    Die Variablen "bildname" und "bildziel" werden übergeben. "bildname" ist der Identifier für die Bilder <img name="...">. "bildziel" übergibt nicht etwa das jeweilige Bildziel (blöde Formulierung), sondern welche Art von Ordner dargestellt werden soll, wenn er offen ist (geschlossen gibt's ja nur einen).

    Erste if-Abfrage: Ist das definierte Bild "bildname" im Augenblick der geschlossene Ordner? Dann tausche dieses Bild gegen die Art geöffneten Ordner aus, der in "bildziel" angegeben wurde.

    Zweite if-Abfrage: Ist das definierte Bild "bildname" im Augenblick der über "bildziel" übermittelte geöffnete Ordner? Wenn ja, dann tausche ihn gegen den geschlossenen Ordner aus.

    Das Beispiel musst Du für Deine Zwecke bestimmt anpassen, aber ich hoffe, dass Prinzip der Abfrage, welches Bild gerade da ist, wird klar.

    Ach ja: einige Leute halten die Verwendung von eval() für ziemlich kitzlig. Ich hab damit aber noch keine schlechten Erfahrungen gemacht.

    Grüße,

    Utz