Skript von JSFiddle einbinden

  • Hallo,

    ich habe auf JSFiddle ein Skript erstellt, dass ich gerne als Modul in Joomla erstellen würde um es an verschiedenen Stelle nutzen zu können.

    Ich möchte das Skript allerdings nicht über JSFiddle einbinden sondern den Code direkt in das Modul schreiben.
    An sich funktioniert das auch, mit einem deaktivierten Editor.
    Allerdings wird mir nur der HTML-Teil angezeigt.
    Normalerw. kann ich dort auf einen Button klicken und das JS erzeugt eine HTML-Tabelle welche dann angezeigt wird.
    Dieser Teil funktioniert leider nicht.

    Wo muss ich den <skript>-Teil unterbingen?


    Gruß

    hagen

  • Hallo Indigo66 ,

    das ist nicht ganz, was ich möchte.

    Ich will nicht JSFiddle per IFrame einbinden sondern den HTML und JS-Teil wirklich in Joomla einfügen.


    Den Editor habe ich schon im Kontrollpanel deaktiviert.
    Anschließend ein neues Modul in Joomla installiert und dort den HTML-Code eingefügt.
    Unterhalb des HTML-Codes habe ich dann zwischen <script> & </script> den JSscript-Teil eingefügt.

    Das funkioniert aber leider nicht.

    Im HTML-Code ist ein Button enthalten. Nach einem Klick auf den Button wird, zumindest wenn ich alles bei JSFiddle ausführe, eine HTML-Tabelle aufgebaut und unterhalb des HTML-Teils dargestellt.

    Hier der Link zu JSFiddle: https://jsfiddle.net/hagenfenris/yq4dr0cj/


    Das muss sich doch irgendwie auch direkt in Joomla abbilden lassen.


    Gruß

    hagen

  • Da man heutzutage keine Inline-Scripte mehr verwenden sollte, wäre mein Vorschlag:

    - Datei /templates/DEINTEMPLATENAME/html/mod_custom/meinCode.php erstellen.

    - In die Datei:

    - Das CSS in Datei /templates/DEINTEMPLATENAME/css/meinCode.css

    - Das JS in Datei /templates/DEINTEMPLATENAME/css/meinCode.js


    In LeerZeile 12 ergänzt du (also bevor dein JQuery-Code beginnt):

    Code
    jQuery(function($) {

    Hinter letzter Zeile schreibst

    Code
    });

    - Dann ein Eigenes Modul anlegen mit Layout "meinCode".

    - Für Tests, vielleicht auch dauerhaft Modulstil auf System > none

    - Editor bleibt leer. Wird eh nicht ausgegeben. Ließe sich aber wahrscheinlich auch machen, dass man in obigem Override irgendwie so einrichtet, dass man im Editor das HTML eintippt und ausgegeben wird.


    Nachtrag:

    Und, nebenbei, wenn du deinen JQuery-Code zukunftssicherer machen willst, schreibst NICHT

    Code
    $("#tx_chance").change(function() {

    sondern

    Code
    $("#tx_chance").on("change", function() {

    sowie NICHT

    Code
    $("#bt_submit").click(function() {

    sondern

    Code
    $("#bt_submit").on("click", function() {
  • Hallo Re:Later ,

    vielen Dank für die Anleitung.

    Irgendwas mach ich aber scheinbar trotzdem noch falsch.

    Die PHP-Datei haben ich unter /templates/rstrone/html/mod_custom/meincode.php angelegt.


    In meiner meincode.php steht:

    mit" value="Simulate Bets" /> </p> <div id="Table">1<br><br><br><br><br></div>


    Eine css-Datei habe ich nicht angelegt, da ich aktuell das css des Template nutzen will.


    Die JS-Datei habe ich unter /templates/rstrone/js angelegt.
    In meiner meincode.js Datei steht:



    Das Modul habe ich im Backend angelegt.

    Es zeigt auf der Modulposition auf der Webseite auch das HTML an.
    Aber der Button hat keine Funktion.


    Irgendwas mach ich da wohl noch mit dem JS falsch.

    Gruß

    hagen

  • Hast du die folgende Zeile für die Anzeige der Tabelle auch im Code drin:

    <div id="Table">1<br><br><br><br><br></div>

    Wahrscheinlich ist dir in #6 lediglich das "Reinkopierte" etwas verrutscht.


    Manchmal kommt es vor, dass bestimmte Dateien verlangt werden (z.B. Templates) , was ich in diesem Fall zwar nicht glaube, da es ja zu keiner Fehlermeldung kommt, dennoch: Es schadet auch nicht, mal eine css-Datei zu generieren und die /* ... */ wieder zu entfernen. Kannst die css ja leer lassen.


    Mehr fällt mir dazu momentan nicht ein..

  • Hallo JoomlaWunder,

    das DIV hab ich auch drin.
    Ist mir wohl beim erstellen des Posts durchgerutscht.

    Meine aktuelle meincode.php:


    meine meincode.js


  • Ich will nicht JSFiddle per IFrame einbinden sondern den HTML und JS-Teil wirklich in Joomla einfügen.

    Die Anleitung gilt auch für Skripte bzw. Javascripte und für HTML sowieso. Schalte halt den Editor ab, damit dein Code nicht gefiltert wird.

    Hast Du schon in einer statischen HTML getestet ob Dein Skript überhaupt funktioniert?

  • Blicke jetzt nicht mehr durch, außer, dass der Code jetzt doch Inline eingebette ist. Es kommt der Fehler: Siehe 2 Bilder unten.


    Ergo: Auch bei diesem Code sind die beiden Zeilen

    Code
    jQuery(function($) {

    und

    Code
    });

    um den Code drumrum dringend notwendig. Er gehört IMMER drumrum. Egal, wie du es nun löst. Oder anders: Sollte er nicht nötig sein (hängt einfach von anderem JavaScript ab, das ein Template so lädt), ist er trotzdem richtig und dringend empfohlen ;) und schützt dich vor solchen Fehlern.


    was meinst Du mit LeerZeile 12?

    Du hast auf JSFiddle verlinkt und da sind Zeilennummern in den Codeblöcken. Ist aber nicht so wichtig. Hauptsache die beiden Zeilen sind drumrum.


  • Hallo,

    jetzt blick ichs langsam au nemme. :D
    Nochmals, was ich gemacht hab.
    Ich habe einen Artikel in Joomla angelegt.
    Dort steht nichts außer {loadposition meinepos1}

    In den Modulen habe ich ein Modul ohne Inhalt angelegt.
    Unter Erweiter > Layout steht: meincode, unter Modulstil: none


    In /httpdocs/cryptospins/templates/beez3/html/mod_custom steht die Datei "meincode.php"

    Inhalt:



    In /httpdocs/cryptospins/templates/beez3/javascript die Datei "meincode.js"

    Inhalt:




    Das "jQuery(function($) {" und "});" habe ich nun entsprechend ergänzt. :)

  • Ich habe mir das jetzt auch mal alles eingerichtet und es läuft einwandfrei, sowohl im Modul, als auch, wenn ich das Modul in einem Beitrag anzeigen lasse. Verwendet habe ich die Codes von jsfiddle, ergänzt um jQuery(function($) {....... });

  • Was mach ich denn dann noch falsch....hmm

    Stehen die php und js-Dateien bei Dir auch in den gleichen Pfaden, wie bei mir?
    In /httpdocs/cryptospins/templates/beez3/html/mod_custom steht die Datei "meincode.php"
    In /httpdocs/cryptospins/templates/beez3/javascript die Datei "meincode.js"

    Hab die meincode.js jetzt unter /httpdocs/cryptospins/media/system/js und jetzt läufts!
    Schöner wärs allerdings im javascript-ordner des templates.
    Oder im Ordner des Moduls mod_custom