Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2008 Teil von Mai

SELFHTML Forumsarchiv
Variablen auf bereits geöffnetes Fenster übertragen

Informationsseite
  1. Seite (JAVASCRIPT) Variablen auf bereits geöffnetes Fenster übertragen von Jo, 30. 05. 2008, 10:08
nach unten

Variablen auf bereits geöffnetes Fenster übertragen

Die folgende Nachricht zum Thema stammt von: Jo, 30. 05. 2008, 10:08

Hallo,

ich öffne via Javascript aus einem Frameset heraus ein Fenster:

window.open('query.php','query','status=yes,resizable=yes,width=480,height=300,scrollbars=yes').self.focus();

jetzt wird in diesem Fenster in einem Formular editiert und nach Aktivierung eines Bearbeitungsmodus wieder in das Hauptfenster zurückgegangen ohne das Fenster "query" zu schließen.
Auf Klick im Hauptfenster werden Koordinaten ermittelt, die wiederum an das Fenster "query" übergeben werden sollen.

Meine Fragen:
1. Wie spreche ich jetzt das Fenster an um die Variablen zu übergeben ohne die aktuellen Inhalte zu verändern? (den Fokus auf das Fenster zu setzen, es also wieder von der Taskleiste zu holen, funktioniert über den Aufruf window.open('','query','').self.focus();)

2. Wie kann ich ermitteln, ob überhaupt das Fenster noch geöffnet ist?

Danke + Gruß
Jo


nach obennach unten

Variablen auf bereits geöffnetes Fenster übertragen

Die folgende Nachricht zum Thema stammt von: Micha, 30. 05. 2008, 10:14

Hallo Jo,

Du solltest Dir die Instanz auf das geöffnete Fenster einfach speichern.
var win = window.open(<par>)

Dann kannst Du mittels dieser auch auf das Fenster zugreigen zB win.focus() oder win.closed usw.


Mit freundlichem Gruß
Micha
--
humane Minensuche, lateinische Quadrate oder doch lieber die Bauklötzer sortieren?

nach obennach unten

Variablen auf bereits geöffnetes Fenster übertragen

Die folgende Nachricht zum Thema stammt von: Teufelchen, 30. 05. 2008, 10:34

»» 1. Wie spreche ich jetzt das Fenster an

Indem du den Rückgabewert von window.open() in einer Variablen speicherst.

Der Aufruf window.open('','query','').self.focus(); ist zum Beispiel gleich in doppelter Hinsicht Unsinn: Erstens möchtest du das Fenster nicht aufmachen, window.open() ist daher falsch am Platz. Zweitens zeigt das Fenster mit self auf sich selbst und ist somit überflüssig, denn du hast ja schon Zugriff auf das Fenster. window.open(…).focus(); funktioniert genauso gut.


»» um die Variablen zu übergeben ohne die aktuellen Inhalte zu verändern?
»» 2. Wie kann ich ermitteln, ob überhaupt das Fenster noch geöffnet ist?

Alles mit dem Window-Objekt:

Fenster öffnen:                 var fenster = window.open('query.php','query' …);
Fenster nach Vorne holen:       fenster.focus();
Variable x in Fenster setzen:   fenster.x = "bla";
Funktion y in Fenster aufrufen: fenster.y();
Fenster noch da?                if ((fenster) && (fenster.document)) { …

Mit folgendem habe ich gerade rumgespielt:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>

<style type="text/css">
</style>

<script type="text/javascript">
var fenster;

function oeffnen() {
 fenster = window.open('test.html','test2','status=yes,resizable=yes,width=480,height=300,scrollbars=yes');
}

function fokus() {
 fenster.focus();
}

function hallo() {
 alert(hallotext);
}

</script>

</head>

<body>
<button onClick="oeffnen()">Öffnen</button>
<button onClick="fokus()">Fokussieren</button>
<button onClick="fenster.hallotext='Hallo, Welt!'; fenster.hallo();">Hallo!</button>
<button onClick="if ((fenster) && (fenster.document)) { alert('Offen'); } else { alert('Zu'); }">Noch offen?</button>
</body>

</html>

nach obennach unten

Variablen auf bereits geöffnetes Fenster übertragen

Die folgende Nachricht zum Thema stammt von: Jo, 30. 05. 2008, 11:17

Vielen Dank für die Hilfe,

wie kann ich aber die Funktion von einem anderen Frame aus nutzen?
Wenn ich Deine Beispieldatei in einem Frameset lade funktioniert der Aufruf immer nur von dem Frame von dem ich das Fenster aufgerufen habe.
Sorry, ich bin mit Javascript noch ein bisschen neu.
Gruß
Jo

nach obennach unten

Variablen auf bereits geöffnetes Fenster übertragen

Die folgende Nachricht zum Thema stammt von: Teufelchen, 30. 05. 2008, 17:33

»» wie kann ich aber die Funktion von einem anderen Frame aus nutzen?
»» Wenn ich Deine Beispieldatei in einem Frameset lade funktioniert der Aufruf immer nur von dem Frame von dem ich das Fenster aufgerufen habe.

Dann solltest du die Variable fenster im übergeordneten Rahmen anfüttern. Ich habe mit Frames nicht viel am Hut, deshalb rate ich jetzt einfach mal, dass du sämtliche Referenzen an fenster durch parent.fenster oder ersetzen musst.

Falls das nicht funktioniert: Mit der Firefox-Erweiterung Firebug kannst du die Javascript-Umgebung eingehend inspizieren und schauen, wo sich fenster versteckt.

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2008 Teil von Mai

© 1998-2006 Seite Impressum, Software: Classic Forum