[TYPO3-german] Einbindung von Inline JS code

_doc _doc at freenet.de
Sat Jul 27 17:25:46 CEST 2019


Hallo Birgit,
Hallo Rainer,

ich habe den Code einmal be einer Aufsetzung eingebaut. Er funktioniert 
nicht, weil das TypoScript falsch ist:
https://docs.typo3.org/m/typo3/reference-typoscript/master/en-us/Setup/Carray/Index.html
Ich habe es er verstanden, als ich in 
TYPO3\CMS\Frontend\Http\RequestHandler Zeile 853 dem PHP-Trace gefolgt 
bin und auf die Zeile
$sKeyArray = ArrayUtility::filterAndSortByNumericKeys($setup);
stieß.

Im CArray von jsFooterInline sind nur Nummern erlaubt (siehe oben). 
Während des PageRendering-Proczesses prüft dies TYPO3 ab und übergeht 
die Information aus dem TypoScript.
Das Gemeine ist, dass der PageObject-Browser dies nicht prüft, sondern 
stumpf das falsche TypoScript-Objekt anzeigt. Man hat also den Eindruck, 
dass das eingegebene TypoScript korrekt ist.
Auch der Template-Analyzer zeigt es nicht als Fehler an.
(TYPO3 9.5)

Das generierte TypoScript darf also nicht funktionieren.

Mit besten Grüßen

    Dieter

P.S. @Rainer
Es wäre schön, wenn du unter 
https://forge.typo3.org/projects/typo3cms-core/issues ein Bug-Ticket 
schreiben würdest.
der TemplateAnalyse sollte eine Fehlermeldung generieren und der der 
TypoScript-Objektbrowser sollte den Code nicht anzeigen.


Am 27.07.2019 um 13:24 schrieb Birgit:
> Hallo Rainer,
>
> hast du im Typoscript Object Browser schon geprüft, ob im letzten Element darüber, das noch ausgeführt wird, eine abschließende Klammer fehlt?
>
> Oder hast dudie folgende Einstellung im config?
>
> With config.removeDefaultJS = external , the inline JavaScript is moved to an external file.
>
>
> viele Grüße
> Birgit
>
>> Am 27.07.2019 um 09:52 schrieb _doc <_doc at freenet.de>:
>>
>> Hallo Rainer,
>>
>> Mein erste Tipp: Klammer zuviel im JavaScript. Module Template: Prüfe mit dem Typoscript-Objekt-Browser, ob dein Code überhaupt eingebunden wird, bzw. lasse die dein TypoScript anzeigen, um gegebenenfalls Syntax- /Klammerfehler zu finden.
>>
>> Mein 2. Tipp: Schreibe oberhalb und unterhalb des Uglifyten Codes einen JavaScript-Kommentar  oder nutze das Gleichheitszeichen (Dein Code ist ja einzeilig.)
>>
>> page.jsFooterInline {
>>     hosvirt_20 =TEXT hosvirt_20.value =!function(l){function e(e){for(var r,t,n=e[0],o=e[1],u=e[2],f=0,i=[];f<n.length;f++)t=n[f],p[t]&&i.push(p[t][0]),p[t]=0;for(r in o)Object.prototype.hasOwnProperty.call(o,r)&&(l[r]=o[r]);for(s&&s(e);i.length;)i.shift()();return c.push.apply(c,u||[]),a()}function a(){for(var e,r=0;r<c.length;r++){for(var t=c[r],n=!0,o=1;o<t.length;o++){var u=t[o];0!==p[u]&&(n=!1)}n&&(c.splice(r--,1),e=f(f.s=t[0]))}return e}var t={},p={1:0},c=[];function f(e){if(t[e])return t[e].exports;var r=t[e]={i:e,l:!1,exports:{}};return l[e].call(r.exports,r,r.exports,f),r.l=!0,r.exports}f.m=l,f.c=t,f.d=function(e,r,t){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(r,e){if(1&e&&(r=f(r)),8&e)return r;if(4&e&&"object"==typeof r&&r&&r.__esModule)return r;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:r}),2&e&&"string"!=typeof r)for(var n in r)f.d(t,n,function(e){return r[e]}.bind(null,n));return t},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="./";var r=window.webpackJsonp=window.webpackJsonp||[],n=r.push.bind(r);r.push=e,r=r.slice();for(var o=0;o<r.length;o++)e(r[o]);var s=n;a()}([]) }
>>
>> Mit besten Grüßen
>>
>>     Dieter
>>
>>
>> Am 26.07.2019 um 19:32 schrieb Dipl.-Ing. Rainer Schleevoigt:
>>> Hi,
>>>
>>>
>>> Das ist ein Teil meines Codes:
>>>
>>> page.jsFooterInline {
>>>      hosvirt_20 = TEXT
>>>      hosvirt_20.value(
>>>   !function(l){function e(e){for(var r,t,n=e[0],o=e[1],u=e[2],f=0,i=[];f<n.length;f++)t=n[f],p[t]&&i.push(p[t][0]),p[t]=0;for(r in o)Object.prototype.hasOwnProperty.call(o,r)&&(l[r]=o[r]);for(s&&s(e);i.length;)i.shift()();return c.push.apply(c,u||[]),a()}function a(){for(var e,r=0;r<c.length;r++){for(var t=c[r],n=!0,o=1;o<t.length;o++){var u=t[o];0!==p[u]&&(n=!1)}n&&(c.splice(r--,1),e=f(f.s=t[0]))}return e}var t={},p={1:0},c=[];function f(e){if(t[e])return t[e].exports;var r=t[e]={i:e,l:!1,exports:{}};return l[e].call(r.exports,r,r.exports,f),r.l=!0,r.exports}f.m=l,f.c=t,f.d=function(e,r,t){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(r,e){if(1&e&&(r=f(r)),8&e)return r;if(4&e&&"object"==typeof r&&r&&r.__esModule)return r;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:r}),2&e&&"string"!=typeof r)for(var n in r)f.d(t,n,function(e){return r[e]}.bind(null,n));return t},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="./";var r=window.webpackJsonp=window.webpackJsonp||[],n=r.push.bind(r);r.push=e,r=r.slice();for(var o=0;o<r.length;o++)e(r[o]);var s=n;a()}([])
>>>      )
>>> }
>>>
>>>
>>> Es wird nicht sichtbar auf der Webseite, alle andere Includes über Files klappen. Was mache  ich nur falsch?  Das gleiche Problem mit jsFooter. Im TS-Baum wird es richtig angezeigt.
>>>
>>> Gruß Rainer
>>>
>> -- 
>> ---
>>
>> Dr. Dieter Porth
>> Grünenstraße 23
>> D-28199 Bremen
>> Germany
>>
>> +(049) 421 / 51 48 35 48
>> +(049) 160 / 99 18 06 88 (abends/ after 18:00)
>>
>> _______________________________________________
>> TYPO3-german mailing list
>> TYPO3-german at lists.typo3.org
>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

-- 
---

Dr. Dieter Porth
Grünenstraße 23
D-28199 Bremen
Germany

+(049) 421 / 51 48 35 48
+(049) 160 / 99 18 06 88 (abends/ after 18:00)



More information about the TYPO3-german mailing list