2

在流体模板中,我有一个流体变量,我想在我的 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

4 回答 4

5

您的元素 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 更改标题并不是一个好习惯。

请查看此处新闻扩展中的 TitleTagViewHelper,了解如何解决此问题的一种解决方案。

于 2016-12-13T14:47:29.357 回答
5
<script>
        function printProductWindow() {
            document.title = <f:format.raw>{product.model}<f:format.raw>;
            window.print(); 
        }
</script>

对于 TYPO3 8.7。

于 2018-07-28T13:14:25.103 回答
3

您也可以在 js 中使用流体变量,但大多数时候您需要使用格式 viewhelper,例如<f:format.htmlspecialchars>.

<script>
    <![CDATA[
        function printProductWindow() {
            document.title = '<f:format.htmlspecialchars>{product.model}</f:format.htmlspecialchars>';
            window.print(); 
        }
    ]]>
</script>
于 2016-12-13T15:05:28.797 回答
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>
于 2018-07-31T09:07:45.500 回答