Popup-Fenster in den Vordergrund zurückholen
Rüdiger
- javascript
0 Edgar S.0 Rüdiger
0 Antje Hofmann0 Christian Schnagl0 Daniel Thoma0 Rüdiger
Hallo erstmal,
ich habe ein kleines Problem mit MSIE 5. Ich habe ein Popup-Fenster, das beim aktivieren des entsprechenden Links aufgeht. Wenn es nun im Hintergrund liegt und der Link erneut angeklickt wird, soll es wieder in den Vordergrund. Meine Idee war folgende:
function open
{
fenster=window.open (...);
fenster.focus();
}
Funktioniert auch mit Netscape. Mit MSIE geht das Fenster zwar ordnungsgemäß auf, bleibt bei wiederholtem Anklicken des Links jedoch im Hintergrund. Was kann ich tun?
Rüdiger
Hi Rüdiger,
versuch mal das window.focus() in das Popup selbst zu setzen.
Andernfalls gibts vielleicht noch eine Krücken-Lösung.
Setze in die function open() ein "fenstername.blur()"
ein, wobei "fenstername" der Name des Hauptfensters ist.
Damit dürfte das Hauptfenster in den Hintergrund verschwinden.
Ich hoffe das hilft, habe leider grad keine Möglichkeit das
direkt zu testen.
Gruß
Edgar
Hi Rüdiger,
versuch mal das window.focus() in das Popup selbst zu setzen.
Andernfalls gibts vielleicht noch eine Krücken-Lösung.
Setze in die function open() ein "fenstername.blur()"
ein, wobei "fenstername" der Name des Hauptfensters ist.Damit dürfte das Hauptfenster in den Hintergrund verschwinden.
Ich hoffe das hilft, habe leider grad keine Möglichkeit das
direkt zu testen.Gruß
Edgar
Hallo Edgar
Ich habe es getestet. Es ging nicht.
Das Problem bleibt auch bei Deinen Vorschlägen, daß die Funktionen beim erneuten anklicken gar
nicht aufgerufen werden, weder mit Hilfe von "onLoad:..." (Das Fenster ist ja bereits geladen)
noch bei "onFocus:..." (das fokussieren will ich ja gerade erreichen).
Trotzdem vielen Dank
Rüdiger
Hallo Rüdiger,
function open
{
fenster=window.open (...);
fenster.focus();
}
Problem 1: open als Funktionsname. Das mußt du unbedingt verändern, weil open bereits eine vordefinierte Funktion ist.
Problem 2: Ein Tipfehler vielleicht? Hinter den Funktionsnamen fehlen die Klammern
schreibe am besten function oeffnen(), dann bist du auf der sicheren Seite
Problem 3: IE5 hat manchmal ein paar Zeitprobleme. Rufe mal den Fokus etwas zeitverzögert auf. Also setTimeout("Fenster.focus()",40);
Viele Grüße
Antje
Hallo Rüdiger,
probiers mal mit diesem Code im Head-Bereich Deines Pop-Ups.
<script>
self.focus();
</script>
Wichtig ist, daß das Script (wie hier) auf 3 Zeilen verteilt ist.
Gruß
Christian Schnagl
Hallo Rüdiger,
ich habe hier ein vollfunktionierendes Beispiel:
<html>
<head>
<title>Test</title>
<SCRIPT>
var opened = false; //Wurde das Fenster geöfnet?
var fenster; //Referenz auf das Fenster
function openwin()
{
if(opened == false) //Falls das Fenster noch nicht geöfnert wurde
{
fenster = open("about:blank","win");
opened = true;
fenster.focus();
}
if(fenster.closed == true) //Falls das Fenster wieder geschlossen wurde
{
fenster = open("about:blank","win");
fenster.focus();
}
if(fenster.closed == false) //Falls das Fenster geöffnet ist
{
fenster.focus();
}
}
</script>
</head>
<body>
<A href="javascript:openwin()">neues Fenster</a>
</body>
</html>
Ich habe es auf IE 5 und Navigator 4.7 getestet.
Tschüs
Daniel
Vielen Dank an alle,
viele gute Tips!
Ich habe mit dem kleinen Script von Christian das Problem gelöst.
Die anderen funktionieren vermutlich auch,
aber das von Christian hatte den großen Vorteil mit einer Zeile auszukommen.
Rüdiger