Artikel überarbeitet: Wertübergabe mit JavaScript
Mathias Schäfer (molily)
- javascript
- selfhtml
Javascript-Daten zwischen verschiedenen HTML-Dokumenten teilen
Schon im Jahr 1999 veröffentlichten Hatto von Hatzfeld und Stefan Puff auf SELFHTML aktuell zwei Artikel, die das browserseitige Austauschen von JavaScript-Variablen zwischen zwei Dokumenten diskutierten. Auch wenn JavaScript nicht immer die beste Lösung dafür ist, um Daten zwischen zwei Dokumenten zu teilen, erfreuen sich diese Artikel immer noch reger Nachfrage und das Thema wird regelmäßig in unserem Forum diskutiert.
Die beiden Artikel wurden nun zusammengeführt, mit Blick auf die Gegenwart überarbeitet und ergänzt. Zudem wird ein objektorientiertes Helferscript vorgestellt, welches das Übertragen von Daten mittels window.name
vereinfacht.
Zum Artikel Javascript-Wertübergabe zwischen verschiedenen HTML-Dokumenten.
Feedback wird gerne unter molily@selfhtml.org entgegengenommen.
Vielen Dank noch einmal an die ursprünglichen Autoren!
Es wäre schön, wenn bei solchen Überarbeitungen auch die veralteten Attribute entfernt werden. Das W3C schreibt seit HTML 4 zu <form name="xxx">: "Note. This attribute has been included for backwards compatibility. Applications should use the id attribute to identify elements."
Das mag stimmen, aber ich mache mir lieber über relevantere Dinge Gedanken... Eine doppelte Angabe von name
und id
halte ich für sinnlos, solange eines funktioniert (so ist es in DOM 2 HTML festgelegt); und alleine id
ist höchstens mit Aussicht auf XHTML praktisch relevant. SELFHTML benutzt überall name
, dies ist auch nicht deprecated im Sinne von HTML 4, sondern eben abwärtskompatibel.
Ich habe mir für ein Hypertextadventure-Framework, das auch Daten von einem Fenster ins andere transportieren muss, die Technik mittels window.name zu eigen gemacht. Da ich aber nicht weiß, welche Namenskonventionen in den diversen Browsern für window.name gelten, habe ich zur Sicherheit die "linearisierten" Daten (so die Sprachregelung im SELFHTML Artikel) zusätzlich in einen String umgewandelt, der die JavaScript-Syntax Zeichen für Zeichen in die zugehörigen UTF-8-Codes umwandelt.
Wäre das eine sinnvolle Ergänzung für den Artikel? Eine Funktionsweise, die beliebige JavaScript-Syntax in einen solchen String schreiben (und dann window.name zuordnen) kann, um dann als Empfänger diese wieder auszulesen und anzuwenden (ja, mit eval() natürlich)?
Da mein Framework noch nicht fertig ist, kann ich noch keinen Link angeben, um zu verdeutlichen, was ich meine, ich antworte aber gerne auf diesbezügliche Mails...
Liebe Grüße,
Felix Riesterer.
Du meinst sowas wie JSON? Klar, man kann das natürlich aufbohren, sodass man neben einfachen Werten auch selbige in Arrays und Objects transportieren kann. Das habe ich im Ausblick ja genannt. Das dürfte mit den genannten vorhanden JSON-Funktionen recht einfach umzusetzen sein.