popup-fenster
Heike Skamper
- javascript
hallo,
ich habe folgendes Problem: wenn ich eine Datei, auf die per Link verwiesen wird, in einem neuen Fenster mit fester Größe und ohne Statusleiste etc. anzeigen will, funktioniert das zwar mit meinem bisherigen Script, aber in der Ausgangsdatei erscheint dann automatisch auch die neue Datei (in meinem Fall test1.htm). Ich möchte aber, dass das Popup-Fenster erscheint und die alte Datei dadrunter sichtbar bleibt. Was mache ich falsch??
das ist das bisherige script:
<a href="test1.htm"
onClick="window.open('test1.htm','','hotkey=no,width=400,height=600,');">
klick hier </a>
Vielen Dank
Heike
hi!
könnte daran liegen das mit window das aktuelle fenster angesprochen wird, aber auch eine target-angbe im sinne von:
onClick="window.open('test1.htm','popup','hotkey=no,width=400,height=600,');
könnte eventuell reichen.
ansonsten würde ich das in eine externe javascriptfunktion auslagern und dort in aller ruhe öffnen (wie in SelfHTML beschrieben *g*)
HTH
cu
Frank
Hallo Heike,
wie viele Weg doch nach Rom führen können ;-)
Also, Frank hat das Zauberwort schon genannt; es ist imho die ein-
fachste Variante, zumal Du dann nicht irgendwelche sonstigen Script-
Bereich defieren musst:
<a href="datei.htm" target="neufenster" onClick="open('','neufenster','Style-Angaben');">
Wenn Du auf mehreren Seiten immer wieder bei bestimmten Links ein
neues Fenster öffnen lassen willst, die immer gleich aussehen, dann
würde ich tatsächlich zu einer externen JS-Datei raten:
Link:
-----
<a href="datei.htm" target="neufenster" onclick="PopUp()">
Externes Script (zB popup.js):
------------------------------
function PopUp()
{
window.open('','neufenster','styleangaben');
}
und dieses im <head> der jeweiligen Datei so referenzieren:
<head>
...
<script language="JavaScript" src="popup.js" type="text/javascript"></script>
Bitte denk daran, dass in der externen Datei nicht mehr die <script>-
Tags verwendet werden dürfen.
Wenn dieses PopUp-Fenster jedoch nicht immer die selbe Grösse haben
sollen, dann kannst Du einzelne Parameter mit der Funktion übergeben:
Beispiel 1: PopUp 400x200
-------------------------
<a href="datei.htm" target="neufenster" onclick="PopUp('400,200')">
Beispiel 2: PopUp 600x150 mit Scrollbars
----------------------------------------
<a href="datei.htm" target="neufenster" onclick="PopUp('600,150,scrollbars')">
Die Funktion PopUp() muss dann wie folgt aussehen:
Beispiel 1:
-----------
function PopUp(width,height)
{
var size = "'width=" + width + ",height=" + height + "'";
window.open('','neufenster',size);
}
Beispiel 2:
-----------
function PopUp(width,height,layout)
{
var style = "'width=" + width + ",height=" + height + "," + layout + "'";
window.open('','neufenster',style);
}
Wobei ich fast dazu tendieren würde, den open-Befehl im jeweiligen
Verweis über den Event-Hanlder 'onClick()' auszuführen. Du sparst
Dir damit die mühsame Kontrolle, ob auch wirklich überall diese
externe Datei referenziert ist und kannst Deine jeweiligen PopUps
leichter definieren, als Deine externe JS-Funktion auf alle Eventua-
litäten anpassen zu müssen.
Also dann... hoffentlich klappts :-)
(die Scriptbeispiele hab ich nicht noch mal getestet - also ohne
jedes Obligo - und 'onclick' im Verweis selbst ist bei mir
kampferprobt)
Viele Grüsse
Alex
Hallo Heike!
Versuchs einmal mit
<a href="javascript: popup()">klick hier</a>
und folgende Funktion im Script-Tag notieren
function popup() {
window.open('test1.htm','','hotkey=no,width=400,height=600,');
}
Hallo Heike!
Versuchs einmal mit
<a href="javascript: popup()">klick hier</a>und folgende Funktion im Script-Tag notieren
function popup() {
window.open('test1.htm','','hotkey=no,width=400,height=600,');
}
vielen Dank,
das klappt gut. Aber jetzt bin ich inzwischen ganz verwirrt. Denn das hier funktioniert ja doch nur mit einer Datei. Ich habe aber auf der Seite verschiedene Links, die bei Anklicken jeweils in das Popup-Fenster sollen? Da muss ich wohl im Dateikopf ein paar Variablen für die popup Funktion deklarieren, aber ich weiss leider nicht, wie es geht. Und wenn ich schon einmal dabei bin - es gibt doch einen Befehl, wie man beim schließen des parentfensters das popup-fenster ebenfalls schließt, aber auch der ist mir nicht klar und ich weiß nicht wohin damit.
Vielleicht kannst du mir ja nochmal helfen.
danke
heike
vielen Dank,
das klappt gut. Aber jetzt bin ich inzwischen ganz verwirrt. Denn das hier funktioniert ja doch nur mit einer Datei. Ich habe aber auf der Seite verschiedene Links, die bei Anklicken jeweils in das Popup-Fenster sollen? Da muss ich wohl im Dateikopf ein paar Variablen für die popup Funktion deklarieren, aber ich weiss leider nicht, wie es geht. Und wenn ich schon einmal dabei bin - es gibt doch einen Befehl, wie man beim schließen des parentfensters das popup-fenster ebenfalls schließt, aber auch der ist mir nicht klar und ich weiß nicht wohin damit.
Hallo Heike!
Vielleicht hat sich ja das Problem schon durch andere Kommentare gelöst (ich hab da selbst nicht ganz durchgeblickt).
Hier trotzdem meine Vorgehensweise:
<a href="javascript: popup('http://www.teamone.de/selfaktuell')">klick hier</a>
Du übergibst einfach mit dem Funktionsaufruf die Variable mit dem link mit auf den Weg. Die JS-Funktion ändert sich dann wie folgt:
function popup(link) {
window.open(link,'','hotkey=no,width=400,height=600,');
}
Die Funktion übernimmt die Variable und fügt Sie beim open-Funktionsaufruf ein. Du musst also nicht mühsam links in Variablen definieren, sondern fügst Sie immer beim zugehörigen popup-Aufruf hinzu.
Wegen dem Schließen muß ich selbst mal schauen.
adio albert
Hi,
<a href="test1.htm"
onClick="window.open('test1.htm','','hotkey=no,width=400,height=600,');">
klick hier </a>
onClick="window.open(...); return false;"
Cheatah
Hallo Heike
Hier ein paar prinzipielle Möglichkeiten:
Leeres Fenster
<A HREF="javascript:FensterOeffnen('')">Leeres Fenster</A>
Öffnen eines leeren Fensters. Die einfache Variante.
Fenster mit Dokument
<A HREF="javascript:FensterOeffnen(location)">Fenster mit Dokument</A>
Öffnen eines Fensters mit einer vorgegebenen URL statt einer Verzweigung zu der URL im gleichen Fenster.
Fenster mit freiem Text
<A HREF="javascript:FensterOeffnenText()">Fenster mit freiem Text</A>
Öffnen eines Fensters mit dynamischen Text, das heißt als reines Ausgabefenster.
Fenster mit Rahmen
<A HREF="javascript:FensterOeffnenRahmen('', '')">Fenster mit Rahmen</A>
Öffnen eines Fensters mit Rahmen. Diese Möglichkeit eröffnet die Chance, Rahmen gezielt und vor allem dynamisch zu gestalten.
Fenster mit Rahmen und Dokumenten
<A HREF="javascript:FensterOeffnenRahmen(location, location, location)">Fenster mit Rahmen und Dokumenten</A>
Öffnen eines Fensters mit einer beliebigen Anzahl von Dokumenten, deren URLs als Parameter aufgelistet sind.
Quelltext.
//
// Fensterverwaltung
//
function FensterOeffnen(url)
{
// Fenster oeffnen (URL als Parameter)
MeinFenster = open(url)
}
function FensterOeffnenText()
{
// Fenster oeffnen (kein URL)
MeinFenster = open()
// Dokument des Fensters oeffnen
MeinFenster.document.open("text/html")
// In das Dokument schreiben
MeinFenster.document.write("Dieser Text erscheint direkt in dem Fenster.")
MeinFenster.document.write("<P>Auch HTML-Formatierungen sind möglich.</P>")
MeinFenster.document.writeln("<P>Ob <B>fett</B>, ob <I>kursiv</I>, alles funktioniert.</P>")
MeinFenster.document.write("<TABLE BORDER=2>")
MeinFenster.document.write("<TR><TD>Selbst</TD><TD>Tabellen</TD></TR>")
MeinFenster.document.write("<TR><TD>sind kein</TD><TD>Problem.</TD></TR>")
MeinFenster.document.writeln("</TABLE>")
// Dokument schliessen
MeinFenster.document.close()
}
function FensterOeffnenRahmen()
{
var argv = FensterOeffnenRahmen.arguments
var argc = FensterOeffnenRahmen.arguments.length
// Fenster oeffnen
MeinFenster = open()
// Dokument des Fensters oeffnen
MeinFenster.document.open("text/html")
MeinFenster.document.writeln("<HEAD><TITLE>Beispiel</TITLE></HEAD>")
MeinFenster.document.write("<FRAMESET COLS='")
for(i = 0; i < argc - 1; i++)
{
MeinFenster.document.write(Math.floor(100/argc) + "%,")
}
MeinFenster.document.write("*")
MeinFenster.document.write("'>")
for(i = 0; i < argc; i++)
MeinFenster.document.write("<FRAME SRC='" + argv[i] + "'>")
MeinFenster.document.writeln("</FRAMESET>")
// Dokument schliessen
MeinFenster.document.close()
}
Die dargestellten Funktionen stellen verschiedene Möglichkeiten des Öffnen von Fenstern dar.
FensterOeffnen
Öffnet ein Fenster ohne weitere Einschränkung des Aussehens. Als einziger Parameter kann ein URL angegeben werden.
FensterOeffnenText
Öffnet - als Beispiel - ein Fenster und schreibt dorthin Text im HTML-Format.
FensterOeffnenRahmen
Öffnet ein Fenster, wertet die Parameter aus und legt so viele Rahmen an, wie URLs angegeben wurden.
Solange kein Name für ein Fenster angegeben wird, wird mit jedem Aufruf der Methode open ein neues Fenster geöffnet.
Jetzt ist es kein problem mehr, oder ?
Grüße ptak
Hallo Heike,
[...]
<a href="test1.htm"
onClick="window.open('test1.htm','','hotkey=no,width=400,height=600,'); ">
klick hier </a> (1)........^
[...]
Was besonders einfach ist: Bei (1) einfach return false; einfügen. Damit geht bei aktivierten Javascript das Fenster auf, und falls nicht aktiviert, wird die Datei im selben Fenster geladen.
Gruß AlexBausW
das ist das bisherige script:
<a href="test1.htm"
onClick="window.open('test1.htm','','hotkey=no,width=400,height=600,');">
klick hier </a>
Du rufst mit<a herf="test1.htm" .....die Seite auf
versuch mal
<a href="JavaScript:return(false)" onClick="window.open 'test1.htm','','hotkey=no,width=400,height=600,');"> klick hier </a>
Gruß Bernhard