Skript-Blocker für Elementor Widgets werden geladen aber dann nicht ausgeführt

Ich bekomm es einfach nicht hin, dass ein Skript-Blocker wieder den Code in dem freigegebenen Skript korrekt ausführt. Ich hab einen einfachen Test mit einem Widget gemacht, wo ich nur will, dass die folgenden 3 console.log Ausgaben erscheinen:

script.js:

jQuery( window ).on( 'elementor/frontend/init', () => {

    console.log( '2. elementor/frontend/init Elementor geladen' );

    const addHandler = ($element) => {

        console.log( '3. frontend/element_ready/example.default, addHandler' );

        elementorFrontend.elementsHandler.addHandler( Example, {
            $element,
        } );
    };
    elementorFrontend.hooks.addAction( 'frontend/element_ready/example.default', addHandler );
} );

console.log( '1. script.js geladen' );

 

Das script.js wird geblockt und nicht geladen, was es ja soll. Aber beim Entsperren erscheint immer nur die 1.) console.log Ausgabe, dass das script.js jetzt geladen wurde – aber der restliche Code wird nie ausgeführt. Auch nicht, wenn ich die Seite danach neu lade, oder die Einstellung benutze, dass die Seite nach der Einwilligung neu geladen werden soll.

Ich bin für jegliche Vorschläge dankbar!

Neues Mitglied Gefragt vor am Juli 30, 2021 in Borlabs Cookie.
Kommentar hinzufügen
5 Antwort(en)

Der Code wird nicht ausgeführt, weil das Init Event von Elementor nicht ausgeführt wird, bzw. zu einem früheren Zeitpunkt. Daher müsstest du prüfen, ob man Elementor dazu bewegen kann, dieses Event erneut ausführen zu lassen.

Hilfreiches Mitglied Beantwortet vor am Juli 31, 2021.
Kommentar hinzufügen
    1. Leider hilft mir das nicht weiter: Ich verstehe, dass das init Event beim ersten Entsprerren nicht ausgeführt wird, da es schon vorher ausgeführt wurde.
    2. Ich verstehe aber nicht, warum es nicht ausgeführt wird, wenn die Seite neu geladen wird, da das Script ja wieder geladen wird und normal zur Verfügung stehen sollte.
    3. Selbst wenn ich den Sriptblocker deaktiviere wird nur das ‚2. elementor/frontend/init Elementor geladen‘ ausgeführt – aber der elementorFrontend.hook ‚3. frontend/element_ready/example.default, addHandler‘ wird niemals ausgeführt, selbst wenn das Script nicht mehr blockiert wird! Das Script funktioniert erst wieder richtig und alle Hooks werden ausgeführt, wenn ich das Borlabs Cookie Plugin ausschalte!
    4. Ich verstehe, dass ich manuell das richtige Script blockieren muss, aber wenn es dann entsperrt wird, warum funktioniert es dann nicht wie vorher? Das ist doch die Aufgabe von dem Borlabs Cookie Plugin. Zumal gesagt wird, dass das Plugin mit Elementor kompatibel ist. Alle Elementor Javascripte werden auf diese Art und Weise geladen. Ich versteh also nicht, warum es da keine Lösung für gibt.
  1.  

 

Neues Mitglied Beantwortet vor am August 2, 2021.
Kommentar hinzufügen

Zu 2: Es funktioniert nicht, weil die Reihenfolgen oder das Timing nicht passt. Es ist daher wichtig zu ermitteln, wie und OB das init Event neu ausgeführt werden kann. Es kann auch schlicht sein, dass es nicht möglich ist, da es das JavaScript, so wie es gebaut wurde, nicht zulässt. Solche Fälle hatten wir auch schon mit einem Google Maps Plugin.

Zu 4: Du bekommst mit Borlabs Cookie ein Tool (Script Blocker), mit dem du Code blockieren kannst. Der Code kann immer entsperrt werden, aber ob er anschließend auch noch das macht, was er soll, ist unmöglich zu garantieren, da das schlicht vom Code abhängig ist. Wäre man unabhängig von Caching-Systemen, wäre es möglich, aber wir müssen immer von einem gecachted Umfeld ausgehen.

Hilfreiches Mitglied Beantwortet vor am August 2, 2021.
Kommentar hinzufügen

Danke für dein Feedback Ben.

Was mich daran so verwirrt ist, dass es standard Elementor Code ist, wie Javascript für ein Widget eingebunden wird. Da muss es doch eine Lösung für geben.

Artikel: Registering the Widget Handler with Elementor

https://developers.elementor.com/building-a-simple-custom-widget-with-javascript/

Registering the Widget Handler with ElementorRegistering the Widget Handler with Elementor

Neues Mitglied Beantwortet vor am August 2, 2021.
Kommentar hinzufügen

Bitte frage bei Elementor nach, wir können dir nichts zu deren JavaScript sagen, das ist kein Code von uns und der Code ist umfangreich, dass wir uns da „nicht mal eben“ einlesen können.

Hilfreiches Mitglied Beantwortet vor am August 2, 2021.
Kommentar hinzufügen

Deine Antwort

Mit dem Absenden deiner Antwort erklärst du dich mit den Datenschutzbestimmungen und den Nutzungsbedingungen einverstanden.