Shopware 6.5.0 JS funktioniert nicht

Dieses JS wurde in benutzerdefiniertes JS/CSS mit Hilfe einer Erweiterung eingebunden, die jetzt mit der neuesten Shopware 6.5 Version nicht mehr funktioniert. Der Text wird nicht ausgeblendet und die Schaltfläche wird nicht angezeigt:

function myFunction() {
  var dots = document.getElementById("aa-dots");
  var moreText = document.getElementById("aa-more");
  var btnText = document.getElementById("myBtn");

  if (dots.style.display === "none") {
    dots.style.display = "inline";
    btnText.innerHTML = "Mehr lesen";
    moreText.style.display = "none";
  } else {
    dots.style.display = "none";
    btnText.innerHTML = "Weniger lesen";
    moreText.style.display = "inline";
  }
}

Hier das HTML:

<p>Text<span id="aa-dots">...</span></p>
<span id="aa-more">
    <p>More text</p>
</span>
<button onclick="myFunction()" class="btn btn-block" id="myBtn">Read more</button>

Also habe ich es in mein benutzerdefiniertes JS-Plugin übertragen, aber es funktioniert auch über mein Plugin nicht. Könnte es an der neuen Shopware 6.5.0 Version liegen? Welche Änderungen wurden an JS in Shopware 6.5 vorgenommen?

Der HTML-Code ist direkt im Theme? Wenn nicht, schau mal im Browser-Debugger, ob der Code überhaupt komplett ausgegeben wird - oder eventuell der onclick-Aufruf bereinigt wird (Stichwort Sanitizer).

HTML steht in der Kategoriebeschreibung und wird dann im CMS vlock verwendet. Es funktionierte bevor Shopware 6.5.0 Update.

Sieht so aus, als ob es jetzt rasiert ist, da ich es nicht finden kann und hier die Aussage jetzt:
„Potenziell schädlicher Code wird automatisch bereinigt und aus dem Editor entfernt.“

Hier steht, wie du den Sanitizer deaktivierst: https://developer.shopware.com/docs/guides/hosting/configurations/shopware/html-sanitizer

1 „Gefällt mir“

OK, ich habe YAML-Ausschlüsse für Sanitizer gefunden und gesetzt. Kann jemand einen Tipp zur Lösung des Problems mit dem Attribut „onclick“ geben?

# User Warning: Global attribute 'onclick' is not supported in any elements (for information on implementing this, see the support forums)

YAML:

html_sanitizer:
        sets:
            -   name: basic
                tags: [ "img", "button" ]
                attributes: [ "src", "alt", "style", "onclick", "id" ]
                options:
                    - key: HTML.Trusted
                      value: true
                    - key: CSS.Trusted
                      value: true

Du kannst den Sanitizer auch komplett deaktivieren:

shopware:
    html_sanitizer:
        enabled: false
1 „Gefällt mir“

Ich erhalte diese Fehlermeldung, wenn ich dies tue:

[critical] Uncaught Exception: Unrecognized option "enabled" under "shopware.html_sanitizer". Available options are "cache_dir", "cache_enabled", "fields", "sets".

Ich tippe mal auf eine falsche Einrückung/Formatierung der YAML-Datei.

Aber hier ist nicht viel los:

# Using the webupdater will overwrite this file. Create a second file z-shopware.yaml to override the config

shopware:
    auto_update:
        # Disables the auto updater in the UI
#        enabled: false
    admin_worker:
        # The Admin worker should be disabled on production server.
#       enable_admin_worker: false
    html_sanitizer:
        enabled: false

Sorry, für „enabled“ brauchst du mindestens Version 6.5.3.0

1 „Gefällt mir“

Update auf 6.5.3.0 hilft.

1 „Gefällt mir“