Sabine: array in diashow gezielt ansprechen

Hi Forum,

Durch Klick auf ein Imagemap wird eine Diashow in einem separatem Fenster (start2.htm) geöffnet:

<map name="Map">
  <area shape="rect" coords="46,239,369,372" href="#" onClick="MM_openBrWindow('start2.htm','','')">
</map>

nun möchte ich, dass in der diashow genau das Foto geladen wird, auf das zuvor geklickt wurde.

wie kann ich der Diashow beim Laden mitteilen, dass das Foto "2003.jpg"  geöffnet werden soll ?
Geht das ohne PHP?

hier das script zu meiner diashow:

<html>
<head>

<script language=javascript>
var pics = new Array("0003.jpg","0004.jpg","0005.jpg"); // hier die zu verwendenen bilder rein!
var i=0;

function getPics(getStatus)
{
if (getStatus==true){
if (i<pics.length-1) {i++;document.thePic.src = pics[i];}
else if (i==pics.length-1){i=0;document.thePic.src = pics[i];}}
if (getStatus==false){
if (i>0) {i--;document.thePic.src = pics[i];}
else if (i==0){i=pics.length-1;document.thePic.src = pics[i];}}
}
</script>
<link href="diashow.css" rel="stylesheet" type="text/css">
</head>

<body>
<img src=0003.jpg name="thePic"> <a href="#" onclick="getPics(false)"><span class="diashow">ZURUECK</span></a> &nbsp; | &nbsp;
<a href="#" onclick="getPics(true)"><span class="diashow">VORWAERTS</span></a>
</body>
</html>

  1. Hallo Sabine,

    schau Dir mal http://de.selfhtml.org/javascript/objekte/location.htm#search an.

    Gruß, Jürgen

    1. Hallo Jürgen,
      das ist ja ganz einfach mit der "Kommunikation zwischen 2Files". danke.
      Jetzt muss ich nur noch wissen, wie ich der Diashow an der Stelle

      <img src=0003.jpg name="thePic">

      sagen kann, dass es genau den Wert von "window.location.search" anzeigt.

      Kannst Du mir da auch weiterhelfen?

      im Folgenden nochmal mein Script

      <html>
      <head>

      <script language=javascript>
      var pics = new Array("0003.jpg","0004.jpg","0005.jpg"); // hier die zu verwendenen bilder rein!
      var i=0;

      //hier die Übergabe
      if(window.location.search != "")
      alert(window.location.search);

      function getPics(getStatus)
      {
      if (getStatus==true){
      if (i<pics.length-1) {i++;document.thePic.src = pics[i];}
      else if (i==pics.length-1){i=0;document.thePic.src = pics[i];}}
      if (getStatus==false){
      if (i>0) {i--;document.thePic.src = pics[i];}
      else if (i==0){i=pics.length-1;document.thePic.src = pics[i];}}
      }
      </script>
      <link href="diashow.css" rel="stylesheet" type="text/css">
      </head>

      <body>
      <img src=0003.jpg name="thePic"> <a href="#" onclick="getPics(false)"><span class="diashow">ZURUECK</span></a> &nbsp; | &nbsp;
      <a href="#" onclick="getPics(true)"><span class="diashow">VORWAERTS</span></a>
      </body>
      </html>

      Hallo Sabine,

      schau Dir mal http://de.selfhtml.org/javascript/objekte/location.htm#search an.

      Gruß, Jürgen

      1. hi,

        Jetzt muss ich nur noch wissen, wie ich der Diashow an der Stelle
        <img src=0003.jpg name="thePic">
        sagen kann, dass es genau den Wert von "window.location.search" anzeigt.

        entweder schreibst du den ganzen <img>-tag an der stelle per document.write() dynamisch ins dokument;

        oder du rufst deine funktion getPics(true) gleich bei nach dem laden der seite ein mal auf (onLoad).

        btw: bitte lies </faq/#Q-09a> und </faq/#Q-09b>.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
      2. Hallo Sabine,

        du benötigst http://de.selfhtml.org/javascript/objekte/string.htm#substring um das ? aus dem "serach"-String zu entfernen, http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#number um den String (ohne ?) in eine Zahl umzuwandeln (ich glaube, i ist die Bildnummer) und http://de.selfhtml.org/javascript/objekte/document.htm#write um die Zeile <img ...> mit dem entsprechenden Bildnamen per Javascript auszugeben. Strings werden übrigens mit dem "+"-Operator aneinandergehängt.
        Das Script würde möglicherweise noch viel einfacher, wenn Du die Adresse des Bildes als Parameter übergibst, also ....html?Bild.jpg.

        Gruß, Jürgen

        1. Hallo Jürgen,
          bis zu dem Schritt, wo das ? herausgenommen wird, ist alles klar. wenn ich aber versuche, 0003.jpg in eine Zahl umzuwandeln, steht NaN da. ab diesem Punkt ist mir alles unklar.

          var Begriff = window.location.search;
          var d = Begriff.substring(1,10);
          document.write(Number(d));

          dann wird NaN ausgegeben

          Dein Vorschlag: also ....html?Bild.jpg
          Kannst Du mir das bitte genauer erklären? vielen Dank

          Sabine

          1. Hallo Sabine,

            bis zu dem Schritt, wo das ? herausgenommen wird, ist alles klar. wenn ich aber versuche, 0003.jpg in eine Zahl umzuwandeln, steht NaN da. ab diesem Punkt ist mir alles unklar.

            das ist klar, 0003.jpg ist auch keine Zahl (NaN=Not a Number).
            Wenn Du nicht den Bildindex sonder die ganze Bildadresse/Bildname übergeben willst, ist das ganze noch einfacher:

            var Begriff = window.location.search;
            var d = Begriff.substring(1,10);

            Jetzt sollte in d die Adresse/der Name des Bildes stehen, also z.B 00003.jpg. Du musst jetzt die Zeile mit <img src="..."> mit document.write ausgeben:

            document.write('<img src="'+d+'">');

            zum Testen ruhig ein alert('<img src="'+d+'">') einsetzen. Aber schau dir http://de.selfhtml.org/javascript/objekte/document.htm#write an, damit Du weißt, was Du tust. Und achte auf die " und '.

            Gruß, Jürgen

            1. Hallo Jürgen
              super, vielen Dank

              Grüße Sabine

          2. Hallo Sabine,

            var Begriff = window.location.search;
            var d = Begriff.substring(1,10);

            woher weißt Du, das der String in Begriff 10 Bytes lang ist? Schau Dir auch noch mal http://de.selfhtml.org/javascript/objekte/string.htm#length an.

            Gruß, Jürgen