Einsatz von XSLT und JavaScript: document.addEventListener oder $(document).ready(function() werden nach XSLT nicht ausgeführt

  • Firefox-Version
    94.01
    Betriebssystem
    Windows 10

    Hallo!

    Ich habe in einer xml-Instanz ein XSL-Script referenziert. Beim Laden in Firefox wird das auch einwandfrei ausgeführt. Mit der XSL-Transformation wird eine JavaScript-Referenz in den stream geschrieben, deren Quellcode Funktionen enthält, die nach dem vollständigen Laden ausgeführt werden sollen (document.addEventListener("DOMContentLoaded", function(event) bzw. in jquery $(document).ready(function()).

    Das funktioniert in Chrome und in Edge wie erwartet, Firefox führt diese Funktionen aber nicht aus (sonstige Fuktionen im Javascript sind aber einwandfrei "erreichbar", also bekannt). Das Verhalten fühlt sich so an, als ob Firefox das DOM bereits beim Reinparsen abarbeitet und damit im Script nicht mehr berücksichtigt, weil das DOM eben schon geladen ist.

    Ich möchte jetzt ungern mit einem JS beginnen und dort das Laden des Dokuments anstoßen (das würde eien erheblichen Umbau-Aufwand erzeugen) ...

    Ist das ein bug, absichtlich gewollt oder hat jemand eine gute Idee?

    Vielen Dank für eure Unterstützung!

  • Zur hilfreichsten Antwort springen
    • Hilfreichste Antwort

    Danke, das Beispiel passt so. Firefox feuert in der Tat kein DOMContentLoaded-Event für das transformierte XML-Dokument. Du könntest das Script leicht ändern.

    Statt:

    JavaScript
    document.addEventListener("DOMContentLoaded", function(event) {
      /* Dein Code */
    });

    So:

    Das funktioniert nach meinem Test in Firefox, Chrome und Safari.

  • Jogolo 28. November 2021 um 07:15

    Hat einen Beitrag als hilfreichste Antwort ausgewählt.
  • @Sören: ich sehe gerade, dass meine ausführliche und herzliche Danksagung von Sonntag hier nicht gespeichert wurde :( (...)

    VIELEN, VIELEN DANK! Dein Tipp war wirklich eine sehr große Hilfe!