Gelöst Manipulation des DOM nach dem es vollständig geladen wurde (jQuery Plugin Initialisierung)

OmKFJ

Aktives Mitglied
2. August 2016
22
0
Hi,

mein selbstentwickeltes jQuery Plugin include ich mittels der info.xml Datei:

XML:
<JS>
    <file>
        <name>foo.js</name>
        <priority>10</priority>
        <position>body</position>
    </file>
</JS>

Ich benutze den HOOK 140 "HOOK_SMARTY_OUTPUTFILTER" um mittels den phpQuery eine zusätzliche JS-Datei aufzurufen/einzubinden um das jQuery Plugin zu initialisieren:

PHP:
pq("footer")->append("<script src=\"" . $oPlugin->cFrontendPfadURL . "template/init.js" . "\"></script>");

JavaScript:
$( "#content" ).foobarPlugin( {
    value: "foo"
} );

Das Problem dabei ist, dass die initialisierung vor dem jQuery include passiert, was darauf hin die Console mir den Fehler ausgibt:
Uncaught TypeError: $(...).foobarPlugin is not a function

Wie regelt man sowas?
 

NETZdinge.de

Sehr aktives Mitglied
7. April 2010
2.117
282
Das Problem ist, dass die ganzen Skripte selbst erst im footer gesetzt werden... wahrscheinlich bist du da einfach schneller… Versuche es mal mit einen Window.Timeout von 200ms
 

OmKFJ

Aktives Mitglied
2. August 2016
22
0
Das Problem ist, dass die ganzen Skripte selbst erst im footer gesetzt werden... wahrscheinlich bist du da einfach schneller… Versuche es mal mit einen Window.Timeout von 200ms
Hi, danke für die Antwort.
Ein timeout würde das Problem lösen, jedoch ist das meiner Meinung nach ein workaround und etwas was sehr unpräzise ist. Beispielweise wenn die Seite unter Mobile länger braucht um zu laden, würde es ja nicht mehr funktionieren. Es gibt auch andere Gründe, die gegen ein timeout sind. Eine andere Möglichkeit?
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.878
518
Halle
Die Scripte aus der info.xml werden nicht im footer, sondern ganz am Ende des body geladen. Mit einem
PHP:
pq('body')->append('<script>jtl.load(["' . $oPlugin->cFrontendPfadURL . 'template/init.js' . '"]);</script>');
sollte es also auch funktionieren, wenn dein Plugin über die info.xml eingebunden wird.
 
  • Gefällt mir
Reaktionen: OmKFJ
Ähnliche Themen
Titel Forum Antworten Datum
Verknüpfung des variantenbildenden Merkmals Otto.de - Anbindung (SCX) 0
Neu Umlagerung waehrend des Prozesses eingefroren User helfen Usern - Fragen zu JTL-Wawi 0
Neu Änderung des Auftrags nach Zahlungseingang Paypal Arbeitsabläufe in JTL-Wawi 7
Neu Pulsierender Punkt bei Aufruf des Backends Gelöste Themen in diesem Bereich 12
Neu Update des JTL shops aus der Wawi funktioniert nicht Allgemeine Fragen zu JTL-Shop 1
Neu Falscher Bestand nach Abbruch des Lieferschein-Lösch-Vorgangs JTL-Wawi - Fehler und Bugs 0
Neu Eigene Felder des Auftrages in der Druckvorlage Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 2
Beantwortet Farbe des Auftrages bei Retouren angepasst JTL-Workflows - Ideen, Lob und Kritik 1
Neu Download-Arikel werden im Backend des Kunden nicht angezeigt JTL-Shop - Fehler und Bugs 1
Neu Woran kann es liegen, dass ein neu erstellter Connector-Verkaufskanal nicht in der Statusliste des Workers vorkommt? Shopify-Connector 2
Neu Keine Artikel Details nach Serverumzug (Wechsel des Hosters) Gelöste Themen in diesem Bereich 7
Neu Einstellung: "Bilder des Vaterartikels un der folgenden Variationswerte übernehmen" und der Shopware Server "explodiert" Shopware-Connector 10
Gelöst Artikel fehlt auf Pickliste des WMS JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 2
Neu Vorstellung des Avada-Themes für das NOVA-Template Templates für JTL-Shop 2
Neu jtl datenbank warnung - ein formular hat mehr als 1000 felder in tkunde des Shops Allgemeine Fragen zu JTL-Shop 0
In Diskussion Kassenschublade öffnet nicht beim ersten Vorgang des Tages. JTL-POS - Fehler und Bugs 10
Neu Info am ende des Bestellung Allgemeine Fragen zu JTL-Shop 2
Neu Abstürze des MariaDB Dienstes MariaDB 10.9.6 JTL-Shop - Fehler und Bugs 1

Ähnliche Themen