PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS (https://www.php-resource.de/forum/html-javascript-ajax-jquery-css-bootstrap-less/)
-   -   Refresh des Opener Window, aber dann das Problem.... (https://www.php-resource.de/forum/html-javascript-ajax-jquery-css-bootstrap-less/100336-refresh-des-opener-window-aber-dann-das-problem.html)

mr_apollon 24-09-2010 11:39

Refresh des Opener Window, aber dann das Problem....
 
Hallo Leute,

ich habe ein kleines Problem. Aus einem Fenster rufe ich ein Popup auf. Dort sind Links. Per Klick wird ein Wert an das Opener Window geschickt und das Popup geschlossen.

Code:

<script language="JavaScript">
<? if ($_GET["reload"]) echo "opener.location.reload(true);";?>

targetName = opener.document.getElementById("contactname");
targetID  = opener.document.form1.contactid;

function documentSelected(id, name)
 {
        targetName.innerHTML = name;
        targetID.value = id;
        window.close();
        return true;
}
</script>

<a href="javascript:documentSelected(1,'test');">

Soweit so gut. Jetzt gibt es auch Situationen, wonach weiter Aktionen ausgeführt werden. Dabei wird aus dem Popup ein PHP-Script aufgerufen, der nach Abschluss wieder die Ausgangsseite des Popup mit der $_GET Variable "reload" aufruft. Dabei wird das Opener Window aktualisiert. Funktioniert auch.

Nur kann nach dem aktualisieren des Opener Windows die Funktion "documentSelected" den Wert nicht mehr ans Opener Window übergeben. Leuchtet mir auch ein, da nach dem Reload das Fenster ein anderes ist.

Meine Frage ist nun, wie ich trotz reload des Opener Windows weiterhin Werte mit der "documentSelected" Funktion aus dem Popup übergeben kann.

Besten Dank!

reok 24-09-2010 11:51

Würde es helfen im Opener ein Frameset oder einen iFrame zu nutzen? Frame A (bzw. der iFrames) enthält das, was du optisch darstellen willst und kann neu geladen werden, Frame B enthält die "Logik" (Javascript) und bleibt immer bestehen. Das Popup wird von Frame B geöffnet. Popup und Frame A sind also immer durch Frame B verbunden, egal was sich wo neu läd, hauptsache du stößt alle Aktionen aus bzw. über Frame B an:
Code:

Frame A sagt Frame B: öffne PopUp
PopUp sagt Frame B: lade Frame A neu
Frame A sagt Frame B: mache irgendwas mit PopUp
usw...

Das ist allerdings nur eine schnelle Idee für einen Workaround. Finde ich selber nicht so toll, aber naja, dürfte funktionieren.

mr_apollon 24-09-2010 23:03

Huhu,

danke für die Antwort. Ist mir leider aber etwas zu dirty ;)

Hat jemand vielleicht noch ne Idee?

Ich könnte mir vorstellen, dass das Opener Fenster beim Reload prüft ob das Popup exisitiert, wenn ja wird es ebenfalls aktualisiert. Damit müsste der Bezug ja wieder bestehen. Nur weiss ich nicht wie ich das anstellen kann.

Vielleicht kann mir jemand helfen oder hat eine besser Idee.

onemorenerd 25-09-2010 10:16

Overlay statt Popup.


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:16 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG