Problem mit Fenstern
Frille
- javascript
Hi,
ich habe ein kleines Javascript Problem bei der Programmierung mit Fenstern. Durch Klicken auf einen bestimmten Link soll ein separates Fenster
geöffnet werden. In diesem Fenster werden dann nacheinander mehrere Seiten angezeigt. Der Benutzer kann dann auch so zwischen den Fenstern hin-
und her springen. Wenn er also im Ursprungsfenster erneut auf der Link klickt, soll das separate Fenster nach vorne geholt werden. Leider lädt er dabei
dann immer die erste Seite neu. Ich weiss zwar, dass ich durch Weglassen des URL Parameters beim window.open dies unterbinden kann, doch wie
frage ich ab, dass dies separate Fenster schon existiert?
Hier das Coding:
if (window.preis == true)
{
preis = window.open("", "preisfenster",
"resizable=no,toolbar,status,scrollbars=yes,width=630,height=400");
preis.focus();
} else {
preis = window.open("start.php3", "preisfenster",
"resizable=no,toolbar,status,scrollbars=yes,width=630,height=400");
preis.focus();
}
Mein Problem liegt bei der eingehenden If-Abfrage, da die beiden Programmteile jeweils alleine schon recht gut funktionieren. Es ist natürlich außerdem
wichtig, dass das Skript sowohl für Netscape 3 und 4 als auch für IE 3, 4 und 5 läuft. Opera ist nicht so wichtig...
Wer weiss Rat? Gerne auch per E-Mail. Danke.
Gruss,
Ralf
Hi Ralf;
doch wie
frage ich ab, dass dies separate Fenster schon existiert?Hier das Coding:
if (window.preis == true)
{
preis = window.open("", "preisfenster",
"resizable=no,toolbar,status,scrollbars=yes,width=630,height=400");
preis.focus();
} else {
preis = window.open("start.php3", "preisfenster",
"resizable=no,toolbar,status,scrollbars=yes,width=630,height=400");
preis.focus();
}
vielleicht irgendwie folgendermassen:
preis = null;
if (preis != null)
if (!preis.closed)
{
Gruss, Martin
Hi Martin,
vielleicht irgendwie folgendermassen:
preis = null;
if (preis != null)
if (!preis.closed)
{
Vielen Dank für den Tip, aber hat leider nicht so richtig geklappt. Wie ich es auch anstelle, ich bekomme es nur hin, dass er entweder immer den einen Zweig der If-Abfrage abarbeitet oder den anderen. Aber so wie ich es haben will, abhängig von der Existenz des Fensters die Zweige der If-Abfrage abzuarbeiten, klappt einfach nicht...
Vielleicht hat noch jemand anderes eine Idee.
Danke.
Ralf
Hi!
Vielen Dank für den Tip, aber hat leider nicht so richtig geklappt. Wie ich es auch anstelle, ich bekomme es nur hin, dass er entweder immer den einen Zweig der If-Abfrage abarbeitet oder den anderen.
Martin's Idee war eigentlich ganz richtig. Ich hoffe, Du hast nicht direkt nacheinander
preis = null;
if (preis != null)
geschrieben?! Denn wenn Du preis auf null setzt, ist (preis != null) natuerlich immer false.
Hier nochmal ausfuehrlicher, aber im Prinzip dasselbe, was Martin meinte:
var preis = null;
var preis_options = "resizable=no,toolbar,status,scrollbars=yes,width=630,height=400";
function open_preis() {
if (preis && (!preis.closed)) { // falls Fenster schon geoeffnet und nicht wieder geschlossen
if (window.focus) preis.focus(); // fuer javscript-faehige Browser
else window.open ("", "preisfenster", preis_options); // fuer IE3
} else { // falls Fenster noch nicht geoeffnet oder schon wieder geschlossen
preis = window.open("start.php3", "preisfenster", preis_options);
}
}
IE5 macht laut Antje bei window.focus() irgendwelche Spinnereien, aber vielleicht liegt's ja an Ihrer Installation. Also probiers einfach mal aus, und wenn Du's nicht hinkriegst, musst Du halt nochmal fragen.
Calocybe