Arrays
Gabi
- javascript
Hallo zusammen!
Ich habe ein Problem und wäre euch dankbar, wenn ihr mir helfen könntet.
Ich möchte auf meiner Homepage eine Bildergalerie mit Javascript ermöglichen. Es funktioniert auch eigentlich soweit. Nur habe ich ein Problem mit den Arrays.
Ich möchte ein Array, dass von der HTML-Seite als Parameter einer Funktion übergeben wird in einer externen Javascript-Datei abspeichern, damit ich mit einer anderen Funktion diese Variable abrufen kann.
Ich hoffe es klingt nicht zu verwirrend. Wenn ihr möchtet schicke ich auf Wunsch auch den Code zu den ich hier erstellt hab.
Danke an alle die sich die Mühe machen und dies hier lesen.
Gruß
Gabi
Halihallo Gabi
Ich möchte auf meiner Homepage eine Bildergalerie mit Javascript ermöglichen. Es funktioniert auch eigentlich soweit. Nur habe ich ein Problem mit den Arrays.
Ich möchte ein Array, dass von der HTML-Seite als Parameter einer Funktion übergeben wird in einer externen Javascript-Datei abspeichern, damit ich mit einer anderen Funktion diese Variable abrufen kann.
Das ist leider nicht möglich. Mit JavaScript kann man keine Dateien schreiben, wie auch?
JavaScript ist clientseitig, du würdest also Dateien auf dem Clientcomputer abspeichern
und dies lässt JavaScript aus gutem Grund nicht zu. Eine Möglichkeit (die einfachste)
wäre, wenn du mit Cookies arbeiten könntest. Eine schwieriger umsetzbare Lösung wäre,
die Daten auf dem Server über eine Serverprogrammiersprache zu speichern.
Viele Grüsse
Philipp
Halihallo Gabi
Ich möchte ein Array, dass von der HTML-Seite als Parameter einer Funktion übergeben wird in einer externen Javascript-Datei abspeichern, damit ich mit einer anderen Funktion diese Variable abrufen kann.
oder du arbeitest mit einer "Dateninsel". Speichere das Array an einem zentralen,
staatischen Ort (z. B. Frame), worauf du immer zugreifen kannst. Mit JavaScript kannst du
auf andere Frames zugreifen und kannst dort (z. B. über Formular) die Daten des Arrays
"rekonstruieren".
Viele Grüsse
Philipp
Hallo Phillip,
danke vorerst für deine Hilfestellung.
Das mit dem Frame klingt ziehmlich logisch. Ich wäre Dir dankbar, wenn du dies etwas genauer erklären könntest.
Ich versuche mal die genaue Situation zu erklären:
Ich habe eine externe Javascriptdatei XY.js in der sich eine Funktion befindet, auf die ich aus dem HTML-Bereich zugreife und diesem einen Array-Parameter übergebe.
In dieser externen Javascript-Datei sind unterschiedliche Arrays jeweils mit einer Bildergalerie.
Die Funktion auf die ich zugreife, muss nun den übergebenen Parameter als "SET-Methode" nun in einer Variable abspeichern, damit ich mit einer anderen Funktion das Array auslesen und somit in die galerie einbinden kann.
Das dumme ist, dass wenn ich direkt, also ohne Parameter auf das Array zugreife ohne es irgendwo abzuspeichern, die Galerie problemlos funktioniert. Aber dann müsste ich für jedes Array seperat eine eigene Seite erstellen und es wäre für zukünftige Änderungen zu aufwändig.
Ich hoffe dass ich dich nicht zu sehr verwirrt habe. Aber wenn das funktionieren würde, wäre ich Dir ausserordentlich dankbar.
Gruß
Gabi
Halihallo Gabi
Das mit dem Frame klingt ziehmlich logisch. Ich wäre Dir dankbar, wenn du dies etwas genauer erklären könntest.
Vielleicht sollte ich dir erst sagen, was durch diese Lösung umsetzbar wäre:
Im Frame hast du ein verstecktes Formular (bzw. der ganze Frame ist nicht sichtbar und
die Daten werden dort einfach gespeichert, nennen wir ihn "versteckter Daten-Frame").
In diesem Formular kannst du, wie in jedem anderen, Werte speichern und auslesen. Diese
Werte sind skalarer Natur (also Zeichenfolgen oder Zahlen) und können von einem anderen
Thread ausgelesen werden.
[...]
Ich hoffe dass ich dich nicht zu sehr verwirrt habe. Aber wenn das funktionieren würde, wäre ich Dir ausserordentlich dankbar.
Nun, du hast mich verwirrt ;)
Ich versuche mal das, was ich verstanden bzw. gefolgert habe niederzuschreiben.
Korrigiere mich einfach, wo ich mir etwas falsches gedacht habe:
Du hast eine externe .js Datei, welche die Daten, welche für das Generieren der Gallery
von nöten sind speichert. Die Daten sind in Form von Arrays vorgegeben und werden über
einen Parameter X (welchen du global speichern möchtest) "selektiert/angesprochen". Die
Datei enthält des weiteren eine Funktion "generiereGallerie", welche die Gallery
erstellt (ändern der Bilder oder dynamische Generierung des html - Quelltextes).
Dann hast du eine andere html Seite, von der du diese Funktion aufrufst, mit dem
Parameter X, um die entsprechenden Gallerie-Daten zu laden/selektieren; diesen Parameter
X speicherst du im Datenframe, um ihn der Funktion "generiereGallerie" zugänglich zu
machen.
Aufgrund dieser Gedanken (falls sie richtig sind), will ich dir die Frage stellen, warum
du diesen Parameter X nicht direkt der Funktion in der .js Datei übergibst?
Nun ja, vorab kann ich dir schon mal den Lösungsansatz verraten, vielleicht hilft das ja
schon:
Du erstellst eine Seite mit einer Frameset-Definition. Der eine Frame enthält ein
Formular, wo du die Daten (der Parameter X) aufnehmen kannst (der andere die
Galerieseite). Also:
<frameset cols="0,*">
<frame src="daten.html" name="datenframe" />
<frame src="galerie.html" name="galerie" />
</frameset>
daten.html enthält:
<form name="datenformular">
<input type="hidden" name="ParamX" />
</form>
Dann hast du die externe .js Datei, wo du nun diesen Parameter auslesen/schreiben
kannst, über:
parent.frames['datenframe'].document.forms['datenformular'].elements['ParamX'].value
Viele Grüsse
Philipp