Patrick Andrieu: onClick Window Open

Beitrag lesen

Hallo Elsa!


Wie geht das einfacher? So irgendwie hatte ich mirs vorgestellt, aber ich stehe auf der Leitung...

Sicher geht es einfacher, Du bist schon fast so weit... :-)

<a href= ???????
onClick:"window.open("charakterpam.htm", "Pam", "width=350, toolbar=no");>pam</a>

Also, open() erwartet 3 Parameter: URL, Fenstername, und den sogenannten 3. Parameterstring, der "wo" den  nOObs am Meisten Probleme macht ;-)

Erstens, Event-Handler wie onClick, onMouseover, etc... sind HTML-Attribute, daher kommt danach kein Doppelpunkt, sondern ein Istgleich-Zeichen:

onClick: <-- falsch
onClick= <-- richtig

Dein Code-Beispiel ist soweit korrekt, aber: es kommt zu einem Konflikt wegen der Quotation-Signs. Statt:

onClick:"window.open("charakterpam.htm",...
        ^            ^                ^

lieber so notieren:

onClick="window.open('charakterpam.htm',...
       ^^            ^                ^

Der dritte Paramterstring bestimmt Breite und Größe des  zu öffnenden Fensters, sowie dessen Aussehen (ob Scrollbar ja oder nein, Menübar ja oder nein, etc.)

Sind nur Höhe und  Breite maßgebend, reicht zum Beispiel:

width=500,height=500

WICHTIG: weder Anführugszeichen noch Leerzeichen innerhalb des Parameterstrings!!!

Dein Kompletter Link könnte also wie folgt aussehen:

<a href="#" onClick="window.open('charakterpam.htm', 'Pam', 'width=350,height=300,toolbar=no');">pam</a>

Ich sagte sehr wohl: "könnte". Denn wie oben angegeben, wird das Popupfenster geöffnent aber in der Seite,  in welcher der Link vermerkt ist, wird zu einem nicht existierenden Anker "#" gesprungen, also nach oben! Um das zu vermeiden muss beim onClick noch ein "return false" hin - der bewirkt, dass der Link zu # nicht ausgeführt wird:

<a href="#" onClick="window.open('charakterpam.htm', 'Pam','width=350,height=300,toolbar=no');return false;">pam</a>

Oder ganz clever:

<a href="charakterpam.htm" target="_blank" onClick="window.open('charakterpam.htm', 'Pam','width=350,height=300,toolbar=no');return false;">pam</a>

Auf dieser Weise öffnen alle Browser mit JavaScript den Link im Popup, die ohne JavaScript in einem normalen zweit-Fenster (dank target="_blank") und die ollen Schinken, die noch nicht mal target kennen, öffnen den Link im Hauptfenster ;-)

Patrick