TYPO3将Fluid变量值传递给Javascript

时间:2016-12-13 14:30:12

标签: javascript typo3 fluid view-templates

在流体模板中,我有一个流量变量,我希望在我的JavaScript代码中使用该值。

我在流体模板中使用JavaScript。

我的代码:

<!-- value I would use further in my javascript -->
<h1 id="product-model">{product.model}</h1>

<!-- Javascript code (in the same file) -->
<script>
   <![CDATA[
     function printProductWindow() {
       document.title = document.getElementById("product");
       window.print(); 
     } 
   ]]>
</script>

提前致谢! 丹尼斯

4 个答案:

答案 0 :(得分:3)

您的元素ID错误:

 document.title = document.getElementById("product-model");

因为您已将其定义为id="product-model"

或者,如果您的JavaScript在FluidTemplate中,您还可以在那里设置值:

<script>
  <![CDATA[
    function printProductWindow() {
      document.title = "]]>{product.model}<![CDATA[";
      window.print(); 
    } 
  ]]>
</script>

但是让我警告你:通过JavaScript更改标题不是一个好习惯。

从新闻扩展程序here查看TitleTagViewHelper,看看如何解决这个问题的解决方案。

答案 1 :(得分:2)

<script>
        function printProductWindow() {
            document.title = <f:format.raw>{product.model}<f:format.raw>;
            window.print(); 
        }
</script>
  

对于TYPO3 8.7。

答案 2 :(得分:1)

您也可以在js中使用流体变量,但大多数情况下您需要使用<f:format.htmlspecialchars>之类的格式视图。

<script>
    <![CDATA[
        function printProductWindow() {
            document.title = '<f:format.htmlspecialchars>{product.model}</f:format.htmlspecialchars>';
            window.print(); 
        }
    ]]>
</script>

答案 3 :(得分:1)

https://docs.typo3.org/typo3cms/ExtbaseGuide/Fluid/ThingsToKnow/JsAndInline.html

<f:format.cdata>
   <script type="text/javascript">
      var myLayout;
      $(document).ready(function() {
         myLayout = $('body').layout({
            north__size: 27,
            north__initClosed: false,
            north__initHidden: false,
            center__maskContents: true // IMPORTANT - enable iframe masking
         });
      });
   </script>
</f:format.cdata>