gelöst Javascript-Code funktioniert nicht

Thema wurde von Henry, 23. Juni 2022 erstellt.

  1. Henry

    Henry Erfahrener Benutzer

    Registriert seit:
    21. März 2012
    Beiträge:
    365
    Danke erhalten:
    14
    Danke vergeben:
    189
    Hallo an alle,

    ich habe folgendes Problem:
    Ich möchte mehrere Texte mit „Weiter lesen“ einkürzen bzw. aufklappen lassen.

    In meinem Test Shop hat es super funktioniert.

    Weiter lesen zu.jpeg

    Weiter lesen auf.jpeg


    Im Live Shop klappen die Felder nicht auf.
    Es sind exakt dieselben Eintragungen eingeschrieben.

    Im
    Tracking-Code habe ich folgendes geschrieben:

    <script type="text/javascript">
    function text(Mein/Text) {
    if (document.getElementById(Mein/Text).style.display=='none') {
    document.getElementById(Mein/Text).style.display='block';
    }
    else {
    document.getElementById(Mein/Text).style.display='none';
    }
    }
    </script>

    Im Text habe ich folgendes geschrieben:

    TEXT;TEXT;TEXT ………………

    <div style="display: none;" id=" Mein/Text "> TEXT;TEXT;TEXT …………………</div>

    < a title="text" href="javascript:text(' Mein/Text ');"><strong>weiterlesen &raquo;</strong></a>


    Kann mir vielleicht jemand helfen?

    Es ist beim Shop www.infrarot-waermeliege.de
     
  2. Anonymous

    Anonymous Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    1.656
    Danke erhalten:
    1.261
    Danke vergeben:
    300
    @Henry Ich hab kurz deinen Shop angeschaut und im Quelltext gesehen, dass das JS gar nicht vorhanden ist.
    Schaue bitte ob du es richtig im Gambo Admin im Head der Tracking Codes eingefügt hast und das die Option auch aktiv ist für den Head Bereich unter "Einstellungen->Tracking-Codes"

    Alternativ kannst du den Code auch in eine JS Datei schreiben und diese über GXModules, z.B. global laden.
    Lege dazu eine Datei im Ordner /GXModules/GambioForum/Weiterlesen/Shop/javascript/Global/ an mit dern Endung .js
    und folgendem Inhalt:

    Code:
    function text(Mein/Text) {
    if (document.getElementById(Mein/Text).style.display=='none') {
    document.getElementById(Mein/Text).style.display='block';
    }
    else {
    document.getElementById(Mein/Text).style.display='none';
    }
    }
    Nachdem du den Modulcache und Seitenladecache erneuert hast, sollte das Script dann auch geladen werden.
     
  3. Henry

    Henry Erfahrener Benutzer

    Registriert seit:
    21. März 2012
    Beiträge:
    365
    Danke erhalten:
    14
    Danke vergeben:
    189
    Ich habe den Javascript-Code richtig eingefüht und auf aktiv gestellt.

    Tracking_Code.jpeg

    Ich werde mal die Alternative probieren.
     
  4. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Ich stehe gerade auf dem Schlauch....
    Warum machst Du für jeden Text ein eigenes Javascript? die Funktion ist doch identisch, egal bei welchem Text, oder liege ich da falsch?
    Kann sich das nicht sogar gegenseitig stören?
     
  5. Anonymous

    Anonymous Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    1.656
    Danke erhalten:
    1.261
    Danke vergeben:
    300
    @barbara Du hast recht, der Code sollte für jeden Text identisch sein, den Parameter in der JS Funktion, wird ja vom Text übergeben, also würde es reichen einmal die Funktion einzufügen:

    Der Code würde dann wie folgt aussehen:

    Code:
    function text(elementID) {
        if (document.getElementById(elementID).style.display=='none') {
            document.getElementById(elementID).style.display='block';
        }
        else {
            document.getElementById(elementID).style.display='none';
        }
    }
    oder noch einfacher, wenn man jQuery benutzt:

    Code:
    
    function text(elementID) {
         $('#'+elementID).toggle();
    }
    
    
     
  6. Henry

    Henry Erfahrener Benutzer

    Registriert seit:
    21. März 2012
    Beiträge:
    365
    Danke erhalten:
    14
    Danke vergeben:
    189
    Ich habe jetzt beide Varianten ausprobiert aber die Texte öffnen sich nicht im Live Shop. Im Test Shop funktioniert es super.

    Tracking neu.jpeg
     
  7. Anonymous

    Anonymous Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    1.656
    Danke erhalten:
    1.261
    Danke vergeben:
    300
    @Henry Der JavaScript Code wird nicht im Shop ausgegeben, er fehlt. Hast du eventuell ein Cache aktiviert, oder z.B. das Modul Ladezeitenoptimierung installiert? Falls ja, muss du den Cache hier ebenfalls leeren und erneuern.
     
  8. Henry

    Henry Erfahrener Benutzer

    Registriert seit:
    21. März 2012
    Beiträge:
    365
    Danke erhalten:
    14
    Danke vergeben:
    189
    Ich habe nichts aktiviert oder installiert.
    Weis nicht, warum der JavaScript Code im Shop nicht ausgegeben wird. Im Testshop habe ich exakt das selbe geschrieben und dort funktioniert es richtig.

    Ich habe dazu mal ein Ticket aufgemacht.
    Ticket-ID: 101390725
     
  9. Henry

    Henry Erfahrener Benutzer

    Registriert seit:
    21. März 2012
    Beiträge:
    365
    Danke erhalten:
    14
    Danke vergeben:
    189
    Danke noch mal an den Support und an Till für die schnelle Hilfe.

    Till hat einen neuen Ordner in GXModules/GambioForum/Weiterlesen/Shop/Themes/All/Javascript/Global/weiterlesen.js geschrieben und damit funktioniert es.

    In „weiterlesen.js“ wurde „$('#'+elementID).toggle();“ geschrieben