Erik Estudiante: Probleme damit, einen Link als Variable zu definieren

Hallo Ihr,

ich habe mehrere Bilder, die alle in einer eigenen .shtml aufgebaut werden. Der Kern dieser .shtml-Dateien ist dabei immer gleich, es werden lediglich die Bilder und der Begleittext ausgetauscht.
Unter diesen Bildern gibt es eine Lupenfunktion, um sich die Bilder in groß anzuschauen.

Frage: Die Lupenfunktion beruht auf einer imagemap und ich möchte mir die Arbeit sparen, bei jeder einzelnen .shtml diese imagemap einzufügen. Stattdessen würde ich diese imagemap gerne in einer SSI hinterlegen. Dazu müsste sich natürlich das Linkziel sich mit dem jeweiligen Bild anpassen.

Ich denke, dazu müsste man das Linkziel als Variable ausgeben. Dazu habe ein wenig in javascript recherchiert und bin auf folgende Möglichkeit gekommen:

In der beispiel.shtml steht:

<script type="text/javascript">  
  var zoom = "http://www.beispiel.de/page/beispiel.jpg";  
  </script>

Diesen Teil (also die Variable) könnte ich dann an das jeweilige Bild anpassen.

Für die Zoomfunktion habe ich dann folgende SSI geschrieben:

<p align="center"><img src="http://www.el-estudiante.net/design/pix/lupe.jpg" width="84" height="120" border="0" usemap="#Map">  
<map name="Map">  
  <area shape="poly" coords="8,111,37,71,61,68,78,47,72,19,61,9,26,12,12,33,22,58,26,71,2,96" href="javascript:location.href=zoom" alt="zoom" target="_blank">  
  </map></p>  

Leider funktioniert es nicht. Liegt es am javascript oder an der Variable?

Vielen Dank für Eure Hilfe,
EE

--
Unwissenheit ist die Mutter aller Abenteuer
  1. Hi,

    Leider funktioniert es nicht.

    Auch fuer dich noch Mal: "Funktioniert nicht" funktioniert nicht.

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. Hi ChrisB,

      Auch fuer dich noch Mal: "Funktioniert nicht" funktioniert nicht.

      MfG ChrisB

      Ok, tut mir leid. Ich versuche es detaillierter zu sagen:
      Wenn ich auf den oben beschriebenen link zum bild-vergrößern drücke, dann öffnet sich im Opera und im IE ein neues Fenster, in dem als URL einfach nur javascript:location.href=zoom steht. Im Firefox öffnet sich ein neues Fenster, das ganz leer ist, auch die Adresszeile.

      Ich hoffe, das war es was du mir sagen wolltest?

      Liebe Grüße,
      EE

      --
      Unwissenheit ist die Mutter aller Abenteuer
      1. Hi,

        Wenn ich auf den oben beschriebenen link zum bild-vergrößern drücke, dann öffnet sich im Opera und im IE ein neues Fenster, in dem als URL einfach nur javascript:location.href=zoom steht. Im Firefox öffnet sich ein neues Fenster, das ganz leer ist, auch die Adresszeile.

        Dann solltest du vielleicht als erstes mal das target-Attribut entfernen, mit dem du ja explizit das Oeffnen eines neuen Fensters/Tabs vorgibst.

        Und falls die Browser dann JavaScript im href eines area-Elements immer noch nicht wie gewuenscht interpretieren wollen (sollten sie eigentlich) - dann weiche auf onclick aus.

        MfG ChrisB

        --
        „This is the author's opinion, not necessarily that of Starbucks.“
        1. Hi,

          Dann solltest du vielleicht als erstes mal das target-Attribut entfernen, mit dem du ja explizit das Oeffnen eines neuen Fensters/Tabs vorgibst.

          Wow, funktioniert Einwandfrei! Vielen vielen Dank für die superschnelle Antwort. Und ich gelobe Besserung, beim nächsten Mal nicht "funktioniert nicht" hinzuschreiben : )

          Eine Frage wäre da noch: Lieber wäre es mir glaube ich, ich könnte das vergrößerte Bild in einem neuen Fenster öffnen lassen. Muss das dann über onclick und window.open programmiert werden oder gibt es auch eine elegante Lösung die auf html basiert?

          Vielen Dank nochmal,
          EE

          --
          Unwissenheit ist die Mutter aller Abenteuer
          1. Lieber wäre es mir glaube ich, ich könnte das vergrößerte Bild in einem neuen Fenster öffnen lassen. Muss das dann über onclick und window.open programmiert werden oder gibt es auch eine elegante Lösung die auf html basiert?

            Ja, du bleibst einfach bei target="_blank", siehe mein anderes Posting.

            Mathias

  2. ich möchte mir die Arbeit sparen, bei jeder einzelnen .shtml diese imagemap einzufügen. Stattdessen würde ich diese imagemap gerne in einer SSI hinterlegen. Dazu müsste sich natürlich das Linkziel sich mit dem jeweiligen Bild anpassen.

    Du willst anscheinend eine serverseitige Logik mit clientseitigem JavaScript umsetzen. Das ist nicht nur unnötig, sondern auch unvorteilhaft. Du kannst die URI in einer SSI-Variable speichern, die du im allgemeinen Template aufrufen kannst (soweit ich weiß):

    <!--#set bilduri="http://www.beispiel.de/page/beispiel.jpg" -->
    <!--#include file="xyz.shtml" -->

    Darin:

    <area shape="poly" coords="..." href="<!--#echo var="bilduri" -->" alt="Bild vergrößern" target="_blank">

    Wenn du jetzt noch die Darstellung beeinflussen willst, kannst du *zusätzlich* ein onclick-Attribut setzen, z.B. um ein angepasstes Popup-Fenster anzuzeigen. In dem Attribut steht die URI über this.href zur Verfügung.

    Mathias

    1. Hallo Mathias,

      danke für Deine Hilfe, das klingt echt ganz gut:

      Du kannst die URI in einer SSI-Variable speichern, die du im allgemeinen Template aufrufen kannst (soweit ich weiß):

      <!--#set bilduri="http://www.beispiel.de/page/beispiel.jpg" -->
      <!--#include file="xyz.shtml" -->

      Für was benötige ich den include-Befehl? Ich habe es ohne diesen gebaut, es gibt ja auch keine .shtml zu includen. Das Bild soll einfach blank, ohne eine .shtml-Datei sein. Vielleicht ist darin aber auch der Fehler, der unten beschrieben wird:

      Darin:

      <area shape="poly" coords="..." href="<!--#echo var="bilduri" -->" alt="Bild vergrößern" target="_blank">

      mein Problem ist jetzt, dass irgendwas an dem Befehl falsch sein muss. Ich habe es so gemacht wie du gesagt hast aber mein Notepad++ zumindest zeigt mir auch farblich an, dass der href="<!--#echo var="bilduri" -->" Befehl nicht vollendet ist. Alles nach dem letzten " wird nur noch schwarz angezeigt statt in der spezifischen Befehl-Farbe...
      Ich komme aber nicht drauf, was daran falsch sein soll.

      Vielen Dank für die Hilfe,
      EE

      --
      Unwissenheit ist die Mutter aller Abenteuer