[Frage] Javascript per TypoScript Wrappen TYPO3-Version: 6.2.7

  • dfluess dfluess
    Jedi-General
    0 x
    1293 Beiträge
    1 Hilfreiche Beiträge
    26. 02. 2015, 10:01

    Hallo,

    ich möchte Javascript direkt per wrap in den Body-Content (tt_content.image.20. . .) einfügen. Das habe ich unter anderem so versucht:

    1. tt_content.image.20.rendering.splitCaption {
    2. allStdWrap.dataWrap.append = TEXT
    3. allStdWrap.dataWrap.append.value = <script>mein JavaScript</script>
    4. }

    Der Script-Tag wird auch eingefügt aber der JavaScript-Code ist unvollständig:
    Aus:
    1. jQuery("#slider-container1").slider({effect:"fadel",duration:20*100,delay:20*100,width:960,height:300,autoPlay:true;});

    Wird:

    1. jQuery("#slider-container1").slider();

    Die Parameter werden via Contstants eingesetzt. Kann mir jemand erklären, wieso der JS-Code nicht so eingesetzt wird? Wie kann ich den Code 1:1 wrappen?

    Danke für eure Hilfe!


  • 1
  • toifel toifel
    Jedi-Ratsmitglied
    0 x
    831 Beiträge
    96 Hilfreiche Beiträge
    26. 02. 2015, 10:14

    {xy} wird im dataWrap automatisch geparsed, da Typoscript hier Daten erwartet, die immer im Format {xy} angegeben werden.

  • dfluess dfluess
    Jedi-General
    0 x
    1293 Beiträge
    1 Hilfreiche Beiträge
    27. 02. 2015, 09:58

    OK Danke, dass ist einläutend.
    Ich suche aber auch noch eine andere Möglichkeit.

    Tatsache ist in diesem Fall außerdem, das JavaScript-File im Body einzubinden damit es funktioniert. Gibt es eine Möglichkeit, eine JavaScriptDatei direkt [b]nach[/b] dem Body-Tag einzubinden?

    auf so etwas wie:
    page.1 = TEXT
    page.1.value = <script>script.js</script>
    möchte ich gern verzichten, da es unabhängig von der PAGE Konfiguration funktionieren soll und außerdem die Komprimierung dann nicht greift.

    Es gibt über TypoScript schon diese Möglichkeiten:
    includeJSFooter
    includeJSFooterlibs

    Dann befindet sich der Aufruf zwar wie gewünscht im Body, aber eben ganz unten im Footer vor dem </body>
    Es muss aber am Anfang direkt nach <body> aufgerufen werden.

    Kennt jemand eine Möglichkeit?

  • Chrissli Chrissli
    Jedi-General
    0 x
    1015 Beiträge
    28 Hilfreiche Beiträge
    02. 03. 2015, 00:49

    Auch wenn das deine Frage nicht beantwortet: Warum muss den das Javascript genau an dieser Stelle eingebunden werden?
    Normalerweise kommt sowas doch in den head-Tag oder wie du selbst gesagt hast, ans Ende vor den schliessenden body-Tag, je nachdem ob die Ausgabe zum Zeitpunkt der Ausführung bereits fertig sein muss oder nicht. Normalerweise JS-Code sollten diese beiden Möglichkeiten doch genügen?

    God's in his heaven, all's right with the world

  • dfluess dfluess
    Jedi-General
    0 x
    1293 Beiträge
    1 Hilfreiche Beiträge
    02. 03. 2015, 19:56

    Hallo,
    aus irgend einem Grunde funktioniert das Script nur wenn es im Body eingebunden ist.
    Es geht um einen jQuery-Slider, der aus 2 Scripts besteht. Die Configuration im Slider überschreibt den Standard im slider.js

    So in etwa..

    <head>
    jQuery.js
    </head>

    <body>
    Slider.js

    <slider>
    config.js
    </slider>

    </body>

    Das config.js muss individuell zum jeweiligen Slider mit einer eigenen ID geparst werden, damit mehrere auf einer Seite möglich sind.

    Keine Ahnung, wieso ein JS nur aus dem body funktioniert(?)

  • 1