PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Javascribt in document.write() aufrufen



Lebowski
27-08-2007, 19:22
Hallo,
ich möchte eine js function in einem document.write() aufrufen.
Dies sieht man im unteren Block im folgenden Quelltext.



// Dateipfade davorschreiben
for(var i=0; i< Bilder_Hinflug.length; i++){
Bilder_Hinflug = "Fotos/Hinflug/" + Bilder_Hinflug[i];
}
[...]

// Extrahiert aus Dateinamen die Bildunterschriften
function Bildunterschrift(Dateistring){
Dateistring = String(Dateistring);
return Dateistring.slice(Dateistring.indexOf("/",7)+1,Dateistring.length-4);
}

function test(){
for(var i=0; i< Bilder_Hinflug.length; i++){
var Datei = Bilder_Hinflug[i];
var Datei_Hochkomma = "'" + Bilder_Hinflug[i] + "'";
var Bildtext = String(Bildunterschrift(Datei));

// Hier wirds interessant

[I]document.write("<div class='gallery-thumb'><a href= 'Javascript:FotoWindow("+ Datei +")'; class='internal' title='"+Bildtext+"'><img src='" + Datei + "' alt='"+Bildtext+"' width='200'></a><div class='thumbcaption' >"+Bildtext+"</div></div>"
);}
return
}


Im letzten Block rufe ich Javascript:FotoWindow("+ Datei +") auf. Was auch soweit funktioniert. Schaut man sich den Link an, so sieht man den richtigen Pfad, nur fehlen die Hochkomma. Füge ich diese manuell (also vor dem 2. und nach dem 3. Anführungsstrichen) hinzu, so funktioniert garnichts mehr. Schreibe ich den Pfad zuvor mit den Hochkommata in die Datei Datei_Hochkomma und binde diese ein, so funktioniert ebenfalls nichts mehr.
Weiß einer eine Lösung?
Danke schonmal im vorraus.

BlueJay
29-08-2007, 16:53
wie soll der mit writeln hingepinselte String aussehen?

Etwa so:
<a href="javascript:zeige('foto1')"> ?

So rein theoretisch braucht man nicht so viele verschachtelte Hochkommata.

Stecke 'foto1' einfach in eine Variable und übergib die dann.
Also

der_volle_uri="foto1";

und entsprechend:

document.writeln('<a href="javascript:zeige(der_volle_uri)">');

2. Variante: escape die 2. Gänsefüßchen: (nicht getestet)

document.writeln("<a href='javascript:zeige(\"foto1\")'>");

so long,
BlueJay