Jan: eine Variable übergeben

PS. Ich poste nochmal zur besten Sendezeit, da ich mich überlesen fühlte! Soll nicht wieder vorkommen.

Hallo Forum,
ich probiere jetzt schon eine ganze Weile an einer Funktion. Doch eine Lösung will mir nicht gelingen. Ich hoffe, dass mir einer einen Rat geben kann.

Folgendes Szenario:
Die Funktion hinweis bekommt einen Namen und eine Id und erzeugt daraus den Namen für einen neuen Layer. Sie schreibt in diesen Layer einen Link auf die Funktion z_lay. Wenn der Link besucht wird, soll die Funktion z_lay den eben erstellten Layer auf 'hidden' setzen und einen weiteren an anderer Stelle definierten Layer anzeigen, sowie die Grö?enverhältnisse innerhalb einer Tabelle je nach Platzbedarf des neuen Layers ändern. Grundsätzlich funktioniert das ganze. Das Problem habe ich bei den Variablen von z_lay("var1", "var2", "var3").
Es werden an dieser Stelle nie die Variableninhalte, sondern die Variablennamen ausgegeben. Ich habe auch schon andere Schreibweisen für die Anführungszeichen bzw. Hochkomma ausprobiert, jedoch war die richtige Schreibweise leider noch nicht dabei :(

Wer kann mir auf die Sprünge helfen, bzw hat eine elegantere Lösung?

Gruß Jan

function hinweis(name, num)
{
var ln = 'pdf_button' + num;
var ld = name;
var li = num;
document.write('<div id="'+ ln +'" style="visibility:visible">');
document.write('<a href="#" onClick="z_lay('+ ln +','+ ld +','+ li +')">');
document.write('LINK'</a></div>);
}
function z_lay(lay, doc ,idx)
{
var tb = 'tabelle' + idx;
var my_pdf = document.getElementById(ln);
var my_lay = document.getElementById(doc);
my_pdf.style.visibility = 'hidden';
my_lay.style.visibility = 'visible';
document.getElementById(tb).style.height = my_lay.offsetHeight + 15;
}

  1. Ohne groß zu lesen, auf dem ersten Blick:

    document.write('<div id="'+ ln +'" style="visibility:visible">');
    document.write('<a href="#" onClick="z_lay('+ ln +','+ ld +','+ li +')">');

    sollte schon eine deutliche Verbesseung bringen.

    MfG
    Klaus

    1. Danke für die Antwort, hättest aber doch lesen sollen :).

      Eine Mögliche Lösung ist:
      ....
      var string = 'write_ssp(&#39;'+ lay_name +'&#39;, &#39;'+ lay_doc +'&#39;, &#39;'+ lay_id +'&#39;);';
      document.write('document.write('<a href="#" onClick="'+ string +'">');');

      Also, es klappt jetzt glücklicherweise alles. Wem aber doch etwas einfacheres einfällt, dann bitte posten.

      Gruß Jan

      Ohne groß zu lesen, auf dem ersten Blick:

      document.write('<div id="'+ ln +'" style="visibility:visible">');
      document.write('<a href="#" onClick="z_lay('+ ln +','+ ld +','+ li +')">');

      sollte schon eine deutliche Verbesseung bringen.

      MfG
      Klaus

      1. Nur nochmal zur Ergänzung der komplette Code-Schnipsel, sonst fragt noch einer - was will der ? Ägypten?

        Gruß Jan

        function hinweis(num, name)
         {
         lay_name = 'pdf_button' + num;
         lay_doc = name + num;
         lay_id = num;
         var string = 'write_ssp(&#39;'+ lay_name +'&#39;, &#39;'+ lay_doc +'&#39;, &#39;'+ lay_id +'&#39;);';
         document.write('<div id="'+ lay_name +'" style="visibility:visible;">');
         document.write('<script language="JavaScript" type="text/javascript">');
         document.write('document.write('<a href="#" onClick="'+ string +'">');');
         document.write('document.write('<img src="../../images/pdf.gif" class="img"></a>');');
         document.write('</script></div>');
         }
        function z_lay(lay, doc, idx)
         {
         var lay_name = lay;
         var lay_doc = doc;
         var tb = 'tabelle' + idx;
         var my_pdf = document.getElementById(lay_name);
         var my_lay = document.getElementById(lay_doc);
         if(!my_pdf) { alert('kein Layer'+ my_pdf); }
         my_pdf.style.visibility = 'hidden';
         my_lay.style.visibility = 'visible';
         document.getElementById(tb).style.height = my_lay.offsetHeight + 35;
         }