JS: Funktionsaufruf mit onload bei meheren Dateien



  • Hi
    Für mein Programm wollte ich eine Art Export-zu-html Funktion. Das habe ich mir so gedacht:
    Es gibt eine diagramm.js in der sind alle mögliche Funktionen zB
    function kreisdiagramm(...)
    function blockdiagramm(...)
    function tabelle(...)

    Diese Datei bleibt immer gleich.
    Der Programm output ist dann eine output.html in der diese Funktionen aufgerufen werden:*
    kreisdiagramm (daten über autos);
    kreisdiagramm (daten über bäume);*
    usw.
    Wollte dann auf so eine html5 Canvas zeichnen bzw. ersteinmal nur beschränken auf Text.

    Sieht bis jetzt so aus:

    output.html:

    <html>
    <head>
    <title>Test</title>
    <script type="text/javascript" src="diagramm.js">
    function machmal () {
    document.write  ("jetzt kommt was ganz tolles");
    //die folgenden Aufrufe wären quasi der Programm output und hätten jeweils passende Parameter etc:
    zeige ("ein baum"); 
    zeige ("noch ein baum");
    }
    
    document.write ("lalalalalala!");
    </script>
    </head>
    <body onload="machmal ()">
    </body>
    </html>
    

    diagramm.js:

    function zeige (msg) {
    document.write  (msg);
    }
    

    Problem:
    body onload="machmal ()"
    ergibt die Meldung Fehler: machmal is not defined Zeile: 1

    body onload="zeige ("blabla")" funktioniert.

    document.write ("lalalalalala!"); wird auch nicht ausgeführt. 😕

    Wie muss ich machmal() definieren damit das so funktioniert wie ich mir das vorstelle?



  • Ahhh man muss einfach mehere <script> tags benutzen. 💡
    Ich dachte es kann das nur einmal geben.

    Wens interessiert:

    <html>
    <head>
    <title>Test</title>
    <script type="text/javascript" src="diagramm.js"> </script>
    
    <script type="text/javascript">
    function machmal () {
    document.write  ("lalalalalala!");
    zeige ("ein baum");
    zeige ("noch ein baum");
    }
    document.write ("lalalalalala!");
    </script>
    
    </head>
    <body onload="machmal ()">
    </body>
    </html>
    


  • Guten Morgen!

    Und um konform zu bleiben, auch immer schön die language angeben. Script-Tags sind schließlich nicht nur für Javascript.

    <script language="javascript" type="text/javascript">
    //...
    </script>
    

    Dass dieses hier >> onload="zeige ("blabla")" << funktionieren soll glaub ich eher nicht, aber ich gehe davon aus, dass es sich hier nur um einen Schreibfehler handelt 🙂

    LG und einen schönen Dienstag


Anmelden zum Antworten