Funktionsausgabe in Dom-Konstrukt

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Funktionsausgabe in Dom-Konstrukt

    Hallo Coder,
    ich stehe mal wieder vor einem Problem. Ich habe folgenden Quelltext

    Quellcode

    1. ...
    2. <script type="text/javascript" src="js/dom.js"></script>
    3. ...
    4. <td style="height:206px;">
    5. <script type="text/javascript" language="JavaScript">
    6. bbCodeNavi('text0');
    7. </script>
    8. <textarea name="text0" id="text0" style="width:700px; height:200px; margin-top:-1px;" class="textareafelder"></textarea></td>


    welcher durch ein Dom-Konstrukt aufgebaut werden soll. Ansich kein Problem ... aber wie bekomme ich die Javascript-Ausgabe "bbCodeNavi('text0');" da rein, so das diese mit ausgegeben wird? Hier mein Dom.Konstrukt:

    Quellcode

    1. // create <TD>
    2. TD_122 = document.createElement('td');
    3. TD_122.style.height='206px'
    4. var TD_122_content1 = document.createElement('textarea');
    5. TD_122_content1.name = 'text'+tablcount;
    6. TD_122_content1.id = 'text'+tablcount;
    7. TD_122_content1.rows = 2;
    8. TD_122_content1.style.width='700px';
    9. TD_122_content1.style.height='200px';
    10. TD_122_content1.className = 'textareafelder';
    11. TD_122.appendChild(TD_122_content1);
    12. // appends <TD> into <TR>
    13. TR_12.appendChild(TD_122);
    Alles anzeigen


    Ich habe schon einiges probiert aber leider ohne Erfolg.

    Ach ... hier übrigens ein Stück des Javascripts welches durch "bbCodeNavi('text0');" augegeben werden soll. Vieleicht trägt dies zur Lösung bei:

    Quellcode

    1. function bbCodeNavi(textblock)
    2. {
    3. var bbCodeNavi = 'hier steht einiges an Text und Bilder';
    4. bbCodeNavi += '...';
    5. bbCodeNavi += 'des weiteren gibt es in diesen Dokument noch einige JS-Funktionen';
    6. document.write(bbCodeNavi);
    7. }


    Ich hoffe es kann mir jemand helfen!

    Grüße KMD
  • Hi dOnUt

    ich habe den Knoten wie Folgt eingefügt

    Quellcode

    1. // create <TD>
    2. TD_122 = document.createElement('td');
    3. TD_122.style.height='206px'
    4. var BB_CODE = document.createTextNode('bbCodeNavi("text'+tablcount+'");');
    5. TD_122.appendChild(BB_CODE);
    6. var TD_122_content1 = document.createElement('textarea');
    7. TD_122_content1.name = 'text'+tablcount;
    8. TD_122_content1.id = 'text'+tablcount;
    9. TD_122_content1.rows = 2;
    10. TD_122_content1.style.width='700px';
    11. TD_122_content1.style.height='200px';
    12. TD_122_content1.className = 'textareafelder';
    13. TD_122.appendChild(TD_122_content1);
    14. // appends <TD> into <TR>
    15. TR_12.appendChild(TD_122);
    Alles anzeigen
    und in der Funktion bbCodeNavi() das return angefügt:

    Quellcode

    1. function bbCodeNavi(textblock)
    2. {
    3. var bbCodeNavi = 'hier steht einiges an Text und Bilder';
    4. bbCodeNavi += '...';
    5. bbCodeNavi += 'des weiteren gibt es in diesen Dokument noch einige JS-Funktionen';
    6. document.write(bbCodeNavi);
    7. return bbCodeNavi;
    8. }

    aber nun wird nicht die Funktion ausgeführt sondern nur "bbCodeNavi("text3");" als Text ausgegeben.
  • Ansonsten scheints mir als hättest du noch nicht viel mit Funktionen gearbeitet.


    Ich bin eher der Designer und Designer haben es nicht so mit dem Programmieren. Dafür habens die Programmierer nicht so mit dem Designen :wink: Zumindest in den meisten Fällen.


    Du übergibst in dem Fall einfach nur den Rückgabewert der Funktion. Keinen String...

    ich werde es mal versuchen. Danke!
  • Ups... ich habe vergessen etwas zu erwähnen. In fer Funktion bbCodeNavi() wird ein Quelltext zusammen gesetzt. also z.B. so:

    Quellcode

    1. function bbCodeNavi(textblock)
    2. {
    3. var bbCodeNavi = '<img src="images/wysiwyg/buttons-start.gif" width="5" height="24" border="0">';
    4. bbCodeNavi += '<a href="javascript:insertTag(\'[link]\', \'[/link]\', \''+textblock+'\')"><img src="images/bb-images/verknuepfung-link.gif" width="23" height="24" border="0"></a>';
    5. // usw ...
    6. return bbCodeNavi;
    7. }


    Nach dem Einbinden des Text-Knotens wird nun der Quelltext ausgeschrieben (es scheint also zu funktionieren) aber nicht geparst (Wenn man das so sagt). Wie kann ich diesen Quellcode ausführen lassen?

    Gruß KMD
  • Jetzt bist du nicht konsequent :lol:

    Lösung 1: wir mischen halbherzig DOM und nicht-DOM

    Quellcode

    1. var BB_CODE = document.createElement("spam");
    2. BB_CODE.innerHTML = bbCodeNavi("text'+tablcount+'");


    Lösung 2: wir machen konsequent alles mit DOM

    Quellcode

    1. IMG = document.createElement('img');
    2. IMG.src='images/wysiwyg/buttons-start.gif';
    3. IMG.style.width='5px';
    4. IMG.style.height='24px';
    5. IMG.style.border='0px';


    Lösung 3: wir machen konsequent alles ohne DOM

    Quellcode

    1. <html>
    2. <head>
    3. <script type="text/javascript">
    4. var tablcount = 0;
    5. function bbCodeNavi(textblock)
    6. {
    7. var bbCodeNavi = '<img src="images/wysiwyg/buttons-start.gif" width="5" height="24" border="0">';
    8. bbCodeNavi += '<a href="javascript:insertTag(\'[link]\', \'[/link]\', \''+textblock+'\')"><img src="images/bb-images/verknuepfung-link.gif" width="23" height="24" border="0"></a>';
    9. // usw ...
    10. return bbCodeNavi;
    11. }
    12. function a() {
    13. var muster = '<td style="height:206px;">'+
    14. bbCodeNavi('text'+tablcount)+
    15. '<textarea name="text'+tablcount+'" id="text'+tablcount+'" style="width:700px; height:200px; margin-top:-1px;" class="textareafelder"></textarea></td>';
    16. document.getElementById('row').innerHTML += muster;
    17. tablcount++;
    18. }
    19. </script>
    20. </head><body onload="a();a();">
    21. <table>
    22. <tr id="row">
    23. </tr>
    24. </table>
    25. </body>
    26. </html>
    Alles anzeigen


    Bevorzugen ist natürlich Lösung 2... aber lieber konsequent irgendwas durchziehen als alles zu mischen.