Martin Mueller: Probleme mit maps

ich beim Erstellen meiner HTML Datei noch ein Problem, daß ich nicht lösen kann. Ich hoffe, Sie können mir dabei helfen.

Ich habe in meiner Datei eine Verweis-sensitive Grafik eingebaut. Das funktioniert auch problemlos. Allerdings muß sich diese Grafik ändern können.
Dies habe ich damit in den Griff bekommen:

Highlight0 = new Image();
  Highlight0.src = "../../Bilder/Jupiter.jpg"
  Highlight1 = new Image();
  Highlight1.src = "../../Bilder/Astrnaut.jpg"
  
  function Bildwechsel(Bildnr,Bildobjekt)
  {
  window.document.images[Bildnr].src = Bildobjekt.src;
  }

Auch das funktioniert. Wie kann ich aber nun auch die USEMAP ändern? Die USEMAP des zweiten Bildes muß eine andere sein, als die des ersten Bildes.
Aufgrunddessen wie meine Seite aufgebaut ist, kann ich nicht eineneue URL aufmachen und dort eine neue Grafik mit entsprechender USEMAP erstellen. Ich muß irgendwie die erste USEMAP durch eine zweite ersetzen können.

Können Sie mir sagen ob, und wenn ja, wie das geht?

Vielen Dank
                    Martin Müller

  1. Geh mal dahin.

    http://www.webreference.com/dhtml/column2/index.html

    Meinst Du sowas??

    Gruß

    Viktor

  2. function Bildwechsel(Bildnr,Bildobjekt)
      {
      window.document.images[Bildnr].src = Bildobjekt.src;
      }

    »»

    Auch das funktioniert. Wie kann ich aber nun auch die USEMAP ändern? Die USEMAP des zweiten Bildes muß eine andere sein, als die des ersten Bildes.
    Aufgrunddessen wie meine Seite aufgebaut ist, kann ich nicht eineneue URL aufmachen und dort eine neue Grafik mit entsprechender USEMAP erstellen. Ich muß irgendwie die erste USEMAP durch eine zweite ersetzen können.

    »»

    Können Sie mir sagen ob, und wenn ja, wie das geht?

    »»

    Vielen Dank
                        Martin Müller

    »»  
    Hallo Martin,

    folgendes müßte machbar sein, allerdings nur bei gleichen Koordinaten:

    Definiere eine Variable z.B.
    var map;
    map=1

    füge in der Funktion einen weiteren Parameter ein
    function Bildwechsel(Bildnr,Bildobjekt,x)
      {map=x; ....}

    beim Aufruf der Funktion wird dann der Wert mit übergeben und map neu gesetzt

    Ändere deine Usemap so ab, daß eine Funktion aufgerufen wird

    z.B.

    <area shape="RECT" coords="1,1,145,56" href="JavaScript:komm('a')">
    <area shape="RECT" coords="1,112,145,160" href="JavaScript:komm('b')">

    in der Funktion rufst du dann die gewünschte Aktion auf

    function komm(y)
    {if (map==1) {if (y=="a") {....} else if (y=="b") {....}}
      else {if (y=="a") {....} else if (y=="b") {....}}
    }

    Ich hoffe, das reicht dir und es funktioniert auch, denn gründlich getestet ist das noch nicht.

    A.H.