Wolle: Links die HTML-Dateien in getrennten Popups laden Teil 2

Hallo,

genau so wie Anja damals:
würde ich eine Seite gerne so einrichten, dass sich, wenn ich auf einen Link klicke, ein Popup öffnet und, wenn ich auf den nächsten klicke, ein zweites erscheint. Ich möchte also am Ende mehrere Popups haben (mit verschiedenem Inhalt, da die Links auf verschiedene Dateien hinweisen).

Ich habe eine Gallerie in der ich jedes Bild als Popupfenster öffnen möchte.

Ich habe jetzt schon dieses Javascript soweit verstanden:

<script type="text/javascript">
<!--
function PopupFenster() {
   F = window.open("Foto1.html","Popup","width=400,height=400,");
 }
// -->
</script>

Jetzt der Link dazu:
<a href="javascript:PopupFenster()">Foto zu Foto1.html</a>

Alles gut und schön.
Aber jetzt die FRAGE:
Wenn ich mehrere Links habe und jetzt oben in das script viele Fenster definiere, wie halte ich die in der <a href= uns. Zeile auseinander? Ich vermute doch mal dass das im script nachher so aussieht:

<script type="text/javascript">
<!--
function PopupFenster() {

Fenster1 = window.open("Foto1.html","Popup","width=400,height=400,");
Fenster2 = window.open("Foto2.html","Popup","width=400,height=400,");
Fenster3 = window.open("Foto3.html","Popup","width=400,height=400,");
Fenster4 = window.open("Foto4.html","Popup","width=400,height=400,");
}
// -->
</script>

Aber wie gleiche ich die Links darauf an, dass sie sich auf das richtige Fenster beziehen?

Irgendwie sowas?

<a href="javascript:PopupFenster(Fenster1)">Foto zu Foto1.html</a>

???

  1. Hi,

    Irgendwie sowas?

    <a href="javascript:PopupFenster(Fenster1)">Foto zu Foto1.html</a>

    ???

    Die Richtung ist schon richtig.
    <a href="javascript:PopupFenster('Fenster1')">Foto zu Foto1.html</a>
    <a href="javascript:PopupFenster('Fenster2')">Foto zu Foto2.html</a>
    ^^die anführungszeichen sind wichtig;
    also wenn du noch mit dem fenstern in JS weiterarbeiten willst so:

    function PopupFenster(datei)
    {
     if(!PopupZaehler) PopupZaehler=1;
     else PopupZaehler++
     eval('fenster'+PopupZaehler+'= window.open("'+datei+'.html","Popup","width=400,height=400");'

    }

    wenn nicht:
    function PopupFenster(datei)
    {

    window.open(datei+".html","Popup","width=400,height=400")

    }

    ich hoffe dir ist damit geholfen

    1. Ich habe das jetzt so gemacht
      <script type="text/javascript">
      <!--
      function PopupFenster() {
         Fenster1 = window.open("Foto1.html","Popup","width=420,height=420,");
       Fenster2 = window.open("Foto2.html","Popup","width=420,height=420,");
      }
      // -->
      </script>

      <a href="javascript:PopupFenster('Fenster1')">Foto1</a>
      <a href="javascript:PopupFenster('Fenster2')">Foto2</a>

      ABER: es wird egal auf welchen Link ich klicke ein popup geöffnet und dann ganz kurz Foto1 gezeigt und dann danach Foto2 und das bleibt dann stehen.

      Wieso das denn?

      1. Hallo,

        du bist nicht so richtig der Vollblut-Programmierer? Nein, das soll jetzt nicht abwertend klingen, aber die Art deiner Fragen lässt auf wenig Erfahrung schließen.

        ABER: es wird egal auf welchen Link ich klicke ein popup geöffnet und dann ganz kurz Foto1 gezeigt und dann danach Foto2 und das bleibt dann stehen.

        Wieso das denn?

        Ja, pass mal hallo: Du rufst mit beiden Links die Funktion PopupFenster auf und übergibst der Funktion die unterschiedliche Parameter 'Fenster1' und 'Fenster2'. Bloß deine JS-Funktion erwartet gar keine Parameter:

        function PopupFenster() {

        Siehst du, sie hat eine leere Parameterliste (in den Klammern).
        Die Funktion wirft also den Parameter weg, und führt danach die zwei Anweisungen aus:

        Fenster1 = window.open("Foto1.html","Popup","width=420,height=420,");
        Fenster2 = window.open("Foto2.html","Popup","width=420,height=420,");

        Sie öffnet ein neues Fenster mit dem internen Namen "Popup" und lädt dort die Datei Fenster1.html hinein. Und einen Wimpernschlag später lädt sie die Datei Fenster2.html in dasselbe Fenster, weil in der Anweisung wieder derselbe Fenstername steht.

        Wenn du hier weiterkommen willst, solltest du...
         * dich entweder mit der Übergabe von Parametern an eine Funktion befassen (ist gar nicht so schwer),
         * oder für jedes Popup, das du öffnen willst, eine separate Funktion mit ihrem eigenen Namen schreiben (das ist nicht so elegant, aber narrensicher).

        Wenn du damit immer noch nicht klarkommst, melde dich einfach nochmal hier in diesem Theater.

        Viel Erfolg,

        Martin

        --
        Manchmal regnet es so sehr,
        dass sogar die Fische unter die Brücken schwimmen,
        um nicht so nass zu werden.