Probleme damit, einen Link als Variable zu definieren
Erik Estudiante
- javascript
0 ChrisB0 molily
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
Hi,
Leider funktioniert es nicht.
Auch fuer dich noch Mal: "Funktioniert nicht" funktioniert nicht.
MfG ChrisB
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
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
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
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
undwindow.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
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
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