为什么TYPO3 CMS 9.5中CDATA包装的内联Javascript为空?

为什么TYPO3 CMS 9.5中CDATA包装的内联Javascript为空?,typo3,fluid,cdata,typo3-9.x,typo3-extensions,Typo3,Fluid,Cdata,Typo3 9.x,Typo3 Extensions,我们已经为TYPO3创建了第三方扩展。升级到9.5后,我们现在在[…]/typo3\u src-9.5.9/vendor/typo3fluid/fluid/src/Core/Parser/TemplateProcessor/namespacedtectiontemplateProcessor.PHP第180行中得到一个PHP警告:为foreach()提供的参数无效 经过一些web研究,我们发现问题在于内联Javascript,您只能通过使用正确的CDATA包装来解决(更多:) 所以我们尝试过(根

我们已经为TYPO3创建了第三方扩展。升级到9.5后,我们现在在[…]/typo3\u src-9.5.9/vendor/typo3fluid/fluid/src/Core/Parser/TemplateProcessor/namespacedtectiontemplateProcessor.PHP第180行中得到一个
PHP警告:为foreach()提供的参数无效

经过一些web研究,我们发现问题在于内联Javascript,您只能通过使用正确的CDATA包装来解决(更多:)

所以我们尝试过(根据曼努埃尔的说法):


但现在,CDATA包装之间的所有内容都在前端返回中完全消失。如果我们也将脚本标记放在CDATA之间

这也不起作用:

<f:format.cdata>
   <script type="text/javascript">
      (function($){
        alert('test');
      })(jQuery);
   </script>
</f:format.cdata>

(函数($){
警报(“测试”);
})(jQuery);
尝试以下任一方法:

<script type="text/javascript">
   <f:format.cdata>
      (function($){
        alert('test');
      })(jQuery);
   </f:format.cdata>
</script>

(函数($){
警报(“测试”);
})(jQuery);


(函数($){
警报(“测试”);
})(jQuery);

更新到TYPO3 CMS9.5.10LTS修复了我们所有的问题。

唯一有效的方法是避开流体变量声明,如
{
}
,但这并不适合使用。
<script type="text/javascript">
   <f:format.cdata>
      (function($){
        alert('test');
      })(jQuery);
   </f:format.cdata>
</script>
<f:format.raw>
   <script type="text/javascript">
      (function($){
        alert('test');
      })(jQuery);
   </script>
</f:format.raw>