sam: pop up trouble

ich hab mich jetzt durchs internet gewühlt, aber wirklich gar nichts gefunden, was mir weiter helfen kann...

mein problem ist folgendes: ich möchte auf einer seite zwei verschiedene popups öffnen können und zwar nur, wenn ich auf den entsprechenden link klicke. aber, wenn ich eins anklicke, öffnen sich immer beide.

so sieht das aus...

http://www.mattpassmore.himmelfahrt.at/misc.html

das ist mein quelltext:

<script language="JavaScript">
function openWindow() {
  F1 =
window.open('lmpromo01.html','popup1','width=340,height=350,left=100,top=1
00,menubar=no,status=no,scrollbars=no,toolbar=no,hotkeys,location=no')

F2 =
window.open('lmscreen01.html','popup2','width=480,height=350,left=440,top=
100,menubar=no,status=no,scrollbars=no,toolbar=no,hotkeys,location=no')
}

//-->
</script>

und im <body> teil:

<a
href="javascript:openWindow('lmpromo01.html','popup1','width=340,height=35
0,left=100,top=100,menubar=no,status=no,scrollbars=no,toolbar=no,hotkeys,l
ocation=no');">promotion pics</a><br><br>

<a
href="javascript:openWindow('lmscreen01.html','popup2','width=480,height=3
50,left=100,top=100,menubar=no,status=no,scrollbars=no,toolbar=no,hotkeys,
location=no');">episode stills</a>

was hab ich denn falsch gemacht? bitte, hilfe!

und ich bin kein informatikstudent... das heißt bitte wie einem doofi erklären! danke im voraus

lg
sam

  1. Hallo sam,

    function openWindow() {
      F1 =
    window.open('lmpromo01.html','popup1','width=340,height=350,left=100,top=1
    00,menubar=no,status=no,scrollbars=no,toolbar=no,hotkeys,location=no')

    F2 =
    window.open('lmscreen01.html','popup2','width=480,height=350,left=440,top=
    100,menubar=no,status=no,scrollbars=no,toolbar=no,hotkeys,location=no')
    }

    das ist eine Funktion ohne Übergabeparameter, die zwei Fenster öffnet.

    <a
    href="javascript:openWindow('lmpromo01.html','popup1','width=340,height=35
    0,left=100,top=100,menubar=no,status=no,scrollbars=no,toolbar=no,hotkeys,l
    ocation=no');">promotion pics</a><br><br>

    Ruft bei Klick die Funktion auf, wobei die Übergabeparameter ignoriert werden, s.O..

    <a
    href="javascript:openWindow('lmscreen01.html','popup2','width=480,height=3
    50,left=100,top=100,menubar=no,status=no,scrollbars=no,toolbar=no,hotkeys,
    location=no');">episode stills</a>

    dito.

    Öffne in der Funktion nur ein Fenster und berücksichtige die Übergabeparameter oder schreibe für jedes Fenster eine eigene Funktion. Die zweite Lösung ist extrem unelegant und bei mehr als zwei verschiedenen Fenstern auch nicht mehr sinnvoll.

    Gruß, Jürgen

  2. Hallo sam,

    ich hab mich jetzt durchs internet gewühlt, aber wirklich gar nichts gefunden, was mir weiter helfen kann...

    Das beweist mal wieder, wie toll das Internet ist, sobald eine Information irrelevant wird, verschwindet sie automatisch. ;-)
    Aber mal ganz im Ernst, Popups werden heute allgemein eher als nervig empfunden, vielleichts ueberlegst du dir einmal, ob du deine Informationen nicht anders aufbereiten willst.

    Wie auch immer, kommen wir mal zu deiner Frage, ich tausche zum besseren Verstaendnis deinen Code mal um:

    <a href="javascript:openWindow('lmpromo01.html',[...]);">promotion pics</a>

    Ideal waere hier <a href="lmpromo01.html" onclick="return openWindow('lmpromo01.html'...)", dann bekommen auch diejenigen was zu sehen, die kein Javascript zulassen. Alles innerhalb der Klammer ab ',menubar=no' kannst du weglassen, das sind die Standardeinstellungen.

    Du rufst also eine Funktion openWindow() mit den Argumenten 'lmpromo01.html','popup1','width=340,height=350,left=100,top=100' auf.

    Schauen wir mal in dein Javascript:

    <script language="JavaScript">

    Richtig waere inzwischen <script type="text/javascript">

    function openWindow() {

    Zwar hast du die Funktion mit drei Argumenten aufgerufen, davon aber keines verarbeitet.
    Richtig waere hier function openWindow(url, name, eigenschaften) {...},
    wobei du die Argumente im grossen und ganzen benennen kannst, wie du magst.

    F1 =
    window.open('lmpromo01.html',[...])

    Hier oeffnest du ein Fenster mit einer Anzahl von Argumenten, ohne dabei die gerade uebermittelten in Betracht zu ziehen.
    Richtig waere F1 = window.open(url, name, eigenschaften);, also die Weitergabe der Argumente an window.open();
    Jetzt brauchst du noch ein return false, damit der eigentliche Link nicht ausgefuehrt wird und das war's.

    //-->

    Der Kommentar //--> ist ueberfluessig
    }
    Du darfst auch gerne den Generator auf meiner Webseite benutzen. Tu dir vorher aber selbst den Gefallen und versuche den korrigierten Code zu verstehen, das Javascript Kapitel in Selfhtml waere dabei sicher hilfreich.

    Gruß,

    Dieter