Zum Inhalt springen

javascript vor schließendem body tag ausgeben

Erstellt am 25. Februar 2008 · 4 Antworten · letzte Antwort am 25. Februar 2008

Tags: JavaScript & AJAX, Frage

i-combinat.​de ·

hallo,

hab eine extension geschrieben in der ne menge javascript
dynamisch generiert wird (im head). das problem ist das der werte ie #evil# das nich so mag und ich den javascript code in den footer verlegen müste. gib es hier irgendeine saubere lösung mit der ich direkt aus der extension vielleicht das rendern des bodytags verändern kann so das mein javascript vor dem schließendem "body" tag ausgegeben werden kann? oder eine andere idee?

p.s.: typoscript wraps (page.wrap etc.) sind mir bereits bekannt und ne userfunc ist auch nicht die optimale lösung....

freue mich über euere antworten

gruße

micha

just2b ·

Hallo,

page.99 < plugin.tx_deineext_pi1
page.99.justGetJs = 1

und in deiner ext auf $conf[justGetJs] prüfen

georg

i-combinat.​de ·

hey georg,

hab deinen code mal getestet und der funktioniert wunderbar.
jedoch wird mein problem damit noch nicht richtig gelöst.

ich versuch es mal näher zu umschreiben:

also es geht um ne google map extension (eigenentwicklung) ....da kennste dich ja schon aus, nicht wahr 😉

- ich lade also über flexform meine settings (für jede einzelne karte)
- verabeite das in meiner ext und generiere daraus dynamische js code

wenn ich das jetzt mit dem "justGetJs code" mache kann ich auf bestimmte settings nicht mehr zugreifen und der js code wird nicht korrekt erstellt...ergo nix funzt.
ich such eigentlich eine möglichkeit wie "$GLOBALS['TSFE']->additionalHeaderData[]" aber eben für den footer ....oder nen wrap den ich direkt aus der ext ansteueren kann...haste verstanden was ich meine?

gruß micha

just2b ·

ja schon klar.

und warum nicht einfach den ganzen js kram in deiner extension am schluss beim return $content.$js; dranhängen? sollte ja ebenso reichen.

wenn nicht, so schau dir mal den js code von rgsmoothgallery an, wie das gemacht wird, dass das DOM wirklich vollständig geladen ist

georg

i-combinat.​de ·

hab ne möglichkeit gefunden:

$GLOBALS['TSFE']->pSetup['wrap']= "|".$meinJS;

bisher habe ich immer $content.$js gemacht. habe mir auch sämtlichste dom geschichten vom ie angeguckt und ausprobiert von "defer=defer" über "request.readyState == 4" und und und...immer mit dem ergebniss "internetseite konnte nicht geladen werden bla bla bla"

und laut ms und google groups heißt es, dass ie probleme damit hat, wenn js code zwischen html tags steht...besser am vor dem schließenden body tag.

zumindest funktioniert es jetzt mit obiger lösung (klopfe auf holz) ersteinmal.
so richtig zufrieden bin ich damit aber nicht, schließlich könnte man ja den pagewrap auchmal für was anderes gebrauchen

micha