Calocybe: Übergabe von Arrays an Funktionen

Beitrag lesen

Hi Frank!

Nun hab ich Dein Problem auch so halbwegs verstanden. Prinzipiell uebergibt man Arrays einfach mit ihrem Namen, aber natuerlich nur, wenn es ein Array bleiben soll. Du willst jedoch das Array nehmen und die ganzen Werte darin in eine neue Datei schreiben. Das geht entweder step by step so:

dw = document.write;     // nur ne kleine abkuerzung
  dw("var Bilder = new Array();\n");     // hier entsteht ein neues 'Bilder' im neuen dokument
  for (var i=0; i<Bilder.length; i++)    // array-Inhalte kopieren
    dw("Bilder[" + i + "] = '" + Bilder[i] + "';\n");   // funktioniert so nur mit Strings!

und spaeter:

dw('<a href="javascript:Bildfunktion(Bilder);"></a>\n');

Hier schreibst Du dann einfach im neuen Dokument die Anweisung, das Bilder-Array zu uebergeben. Aber das Bilder ja sowieso weiter oben im erzeugten Quelltext steht, koennte die Funktion ja auch direkt drauf zugreifen. Vermutlich willst Du aus verschiedenen Gruenden lieber an Ort und Stelle ein anonymes Array erzeugen und das an die Funktion uebergeben. Das geht dann ungefaehr so:

dw('<a href="javascript:Bildfunktion( [');
Hier beginnt das anonyme Array:         ^
Dann einfach die Werte wieder ausgeben:
  dw("'" + Bilder.join("', ") + "'");
  // erzeugt etwa   'P01001.jpg', 'P01002.jpg', '...'
(Funktioniert wiederum nur, wenn die Elemente alle Strings sind.)
Link abschliessen:
  dw('] );\n"');
      ^ ^- Funktionsaufruf schliessen
      +--- anonymes Array schliessen

HTH, So long