Werteübergabe zwischen Fenstern
Günter Marchewka
- programmiertechnik
Hallo Forum,
ich plage mich seit längerem mit der Werteübergabe zwischen einzelnen Fenstern herum.
Bisher hatte ich alle meine Bemühungen aufgebaut auf den entsprechenden Artikel in der Auslese.
Die Verwendung von window.name führte allerdings zu einer Reihe von Problemen, die ich nie in den Griff bekam:
1. window.name wird vom Browser überschrieben, wenn DIVs verwendet werden.
2. Die Fenstersteuerung versagt, wenn Lesende den Back-Button vom Browser anklicken.
3. window.name wird gelöscht, wenn Lesende die Seite aktualiseren wollen.
Es gab schon viele Postings, die ähnliche Probleme beschrieben und entsprechende Anfragen, wie man die History manipulieren könne, um dieses Problem zu lösen.
Ich habe nun eine Lösung gefunden, die reibungslos zu funktionieren scheint.
Alle oben genannten Probleme treten nicht mehr auf!
Die Tatsache, daß diese Lösung noch nicht empfohlen wurde und ich erst ein paar Monate mit HTML und JavaScript arbeite, macht mich jedoch stutzig, ob nicht vielleicht doch ein Haken dabei ist.
Was ich mache:
Ich benutze window.location.href, um Werte an ein anderes Fenster zu übergeben, selbst wenn dieses in einer neuen Browserinstanz geöffnet wird.
Über window.location.href=url?wert schreibe ich die Werte und
über Part = window.location.href.split("?");
Wert = Part[Part.length-1]; hole ich mir den Wert im neuen Fenster wieder heraus.
Hab ich nun einen Treffer gelandet, oder entstehen nun an anderer Stelle Probleme, die ich nur noch nicht bemerkt habe.
Grüsse
Günter
Hallo Günter,
- window.name wird vom Browser überschrieben, wenn DIVs verwendet werden.
kann ich nicht bestätigen, ich habe selber fast nur div's und window.name funzt
- window.name wird gelöscht, wenn Lesende die Seite aktualiseren wollen.
bei einem reload bleibt der Inhalt von window.name erhalten.
Gehe dazu mal auf http://www.gorvita.de und fülle deinen Warenkorb ein wenig. Drücke dann auf reload und siehe da - dein Warenkorb ist noch voll.
Ich speichere die Artikel alle in window.name !!
Über window.location.href=url?wert schreibe ich die Werte und
über Part = window.location.href.split("?");
Wert = Part[Part.length-1]; hole ich mir den Wert im neuen Fenster wieder heraus.
Das geht natürlich auch sehr gut. Nur sieht man die Werte in der Adresszeile, was bei sensieblen Daten nicht erwüscht sein kann. Außerdem gibt es den referer, der die letzte besichte Seite auch für den Webserver sichtbar macht. Dort würden dann auch deine Daten stehen.
Dann weiß ich nicht, wie lang eine URL sein kann, wodurch man vieleicht nicht so viele Daten austauschen kann.
Diese Lösung ist nat. auch hinlänglich bekannt.
Aber gut, dass du selber darauf gekommen bist.
ALEX