window.reload
gerld
- javascript
Hallo JavaScript Profis,
ich habe folgendes Problem.
Ich habe mir in einem Browser Fenster per cookie das aktuelle Windows Objekt gesichert.
Im Folgefenster möchte ich das erste Fenster aktualisieren.
Dazu lese ich das cookie wieder und versuche mit window.reload(); das erste Fenster zu refreshen.
Aber das funktioniert nicht.
Ist so etwas überhaupt grundsätzlich möglich?
Ich habe mir in einem Browser Fenster per cookie das aktuelle Windows Objekt gesichert.
Cookies speichern nur Text, keine Objekte.
Wenn du das window-Objekt in einem Cookie speicherst, so wird es in einen String umgewandelt, mit dem du später überhaupt nichts anfangen kannst.
Im Folgefenster möchte ich das erste Fenster aktualisieren.
Wie das denn, es ist doch ohnehin weg? Oder arbeitest du mit Popups oder Frames? Dann kannst du z.B. aus einem Popup mit opener auf das Ursprungsfenster zugreifen.
Siehe auch http://aktuell.de.selfhtml.org/artikel/javascript/fensterzugriff/
Beschreibe einfach mal deine Aufgabenstellung.
Mathias
Ich habe mir in einem Browser Fenster per cookie das aktuelle Windows Objekt gesichert.
Cookies speichern nur Text, keine Objekte.
Wenn du das window-Objekt in einem Cookie speicherst, so wird es in einen String umgewandelt, mit dem du später überhaupt nichts anfangen kannst.Im Folgefenster möchte ich das erste Fenster aktualisieren.
Wie das denn, es ist doch ohnehin weg? Oder arbeitest du mit Popups oder Frames? Dann kannst du z.B. aus einem Popup mit opener auf das Ursprungsfenster zugreifen.
Siehe auch http://aktuell.de.selfhtml.org/artikel/javascript/fensterzugriff/
Beschreibe einfach mal deine Aufgabenstellung.Mathias
Ich schieb:
Im Folgefenster möchte ich das erste Fenster aktualisieren.
Dann ist für mich klar, dass beide Browserfenster geöffnet sind.
Wenn ich das Objekt nicht per cookie sichern kann, gibt es dann eine andere Möglichkeit?
Hi,
bitte zitiere vernuenftig.
Ich schieb:
Was und wohin?
Im Folgefenster möchte ich das erste Fenster aktualisieren.
Dann ist für mich klar, dass beide Browserfenster geöffnet sind.
Damit ist immer noch nicht klar, *wie* das "Folgefenster" geoeffnet wird. Mensch, drueck dich doch mal ein bisschen praeziser aus! </hilfe/charta.htm#tipps-fuer-fragende>
Wenn ich das Objekt nicht per cookie sichern kann, gibt es dann eine andere Möglichkeit?
Wie schon gesagt wurde, wenn das Fenster mittels window.open geoeffnet wurde, bspw. opener.
MfG ChrisB
Wenn ich das Objekt nicht per cookie sichern kann, gibt es dann eine andere Möglichkeit?
Weil die Antwort auf diese Frage »Nein« lautet, schrieb ich: Beschreibe mal deine Aufgabenstellung. Entweder die beiden Fenster können über opener bzw. den Rückgabewert von window.open aufeinander zugreifen oder gar nicht.
Mathias
Ich habe mir in einem Browser Fenster per cookie das aktuelle Windows Objekt gesichert.
Das geht nicht, du kannst in cookies nur Strings abspeichern.
Im Folgefenster möchte ich das erste Fenster aktualisieren.
Wie willst du ein Fenster das nicht mehr existiert aktualisieren?
Oder meinst du wirklich Fenster, die mit window.open() geöffnet wurden?
Dann suchst du evtl. opener
Struppi.
gruss gerald,
Dazu lese ich das cookie wieder und versuche mit window.reload();
das erste Fenster zu refreshen.
selbst, wenn Du unten stehende ratschlaege beherzigst und zugriff auf
das gewuenschte [window]-objekt haben solltest, wird Dir ein refresh
nicht gelingen:
erstens ist [reload] eine methode des [location]-objekts; demzufolge
lautet die anweisung: »[windowObject].[link:http://de.selfhtml.org/javascript/objekte/location.htm#reload@title=location.reload(true)];
«
zweitens wird Dir der zugriff auf jegliche eigenschaft Deines
gewuenschten [window]-objekts verweigert, sobald das referenzierte
dokument dieses fensters die »same origin policy« verletzt.
Ist so etwas überhaupt grundsätzlich möglich?
so aus dem bauch heraus? - ja.
so long - peterS. - pseliger@gmx.net
gruss gerald,
Dazu lese ich das cookie wieder und versuche mit window.reload();
das erste Fenster zu refreshen.selbst, wenn Du unten stehende ratschlaege beherzigst und zugriff auf
das gewuenschte [window]-objekt haben solltest, wird Dir ein refresh
nicht gelingen:
erstens ist [reload] eine methode des [location]-objekts; demzufolge
lautet die anweisung: »[windowObject].[link:http://de.selfhtml.org/javascript/objekte/location.htm#reload@title=location.reload(true)];
«zweitens wird Dir der zugriff auf jegliche eigenschaft Deines
gewuenschten [window]-objekts verweigert, sobald das referenzierte
dokument dieses fensters die »same origin policy« verletzt.Ist so etwas überhaupt grundsätzlich möglich?
so aus dem bauch heraus? - ja.
so long - peterS. - pseliger@gmx.net
Danke Peter,
hier noch einmal im Telegrammstiel, was ich machen will.
Fenster 1
Listet Datenbankinhalte
User will Datenbanzeile (row) ändern
Fenster 2 wird geöffnet mit win=window.open(adresse,“titel“);
Fenster 2
Update/Delete/Insert Datenbankinhalte
Nach der Datenbankaktion soll Fenser 1 aktualisert werden.
Wie löst Du so etwas?
Hi,
zitiere bitte vernuenftig!
Wie löst Du so etwas?
Ueber window.opener, wurde doch jetzt schon mehrfach gesagt.
MfG ChrisB
hallo again gerald,
Fenster 1
Listet DatenbankinhalteUser will Datenbanzeile (row) ändern
Fenster 2 wird geöffnet mit win = window.open(adresse, “titel“);
die [Fenster 2] referenzierende variable [win] innerhalb von [Fenster 1]
braucht es nochnichteinmal.
Fenster 2
Update/Delete/Insert Datenbankinhalte
Nach der Datenbankaktion soll Fenser 1 aktualisert werden.
Wie löst Du so etwas?
ohne jetzt AJAX ins spiel zu bringen ungefaehr so:
~~~javascript (function () {
if (window.addEventListener) {
window.addEventListener("load", (function () {
if (opener && opener.location && opener.location.reload) {
opener.location.reload(true);
}
}), false);
} else if (window.attachEvent) {
window.attachEvent("onload", (function () {
if (opener && opener.location && opener.location.reload) {
opener.location.reload(true);
}
}));
}
delete arguments.callee;
})();
2) alternativ koennte man auch versuchen, [Fenster 1] durch scripting
nachtraeglich einen [name] zu verpassen, um dieses fenster dann
moeglicherweise innerhalb der window/frames-hierarchie ueber das
html-target-attribut von links oder eben wie in diesem fall von
formularen adressieren zu koennen:
... meinetwegen auch auf \*onload\* ... »`window.name = "dbState"`{:.language-javascript}«
falls das geht - ich hab' das nie getestet - bekommt das formular
des in [Fenster 2] liegenden dokuments ein target-attribut, dessen
wert mit dem durch das scripting in [Fenster 1] gesetzten namen
uebereinstimmt. perfekt waere es natuerlich, wenn die [action] des
formulars die gleichlautende dokumenten-adresse aus [Fenster 1]
bekaeme.
das durch den serverprozess nach [Fenster 1] zurueckgegebene dokument
entspraeche dann in adresse/referenzierung, form/aufbau/struktur dem
schon zuvor geladenem dokument.
gute nacht - peterS. - pseliger@gmx.net
--
»Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.
Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive.« - [Douglas Crockford](http://javascript.crockford.com/)
[ie:( fl:) br:> va:( ls:& fo:) rl:) n3;} n4:} ss:} de:µ js:} mo:? zu:\]](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%28+fl%3A%29+br%3A%3E+va%3A%28+ls%3A%26+fo%3A%29+rl%3A%29+n3%3B%7D+n4%3A%7D+ss%3A%7D+de%3A%B5+js%3A%7D+mo%3A%3F+zu%3A%5D)