2017-01-30 30 views
1

在我的项目中,我们使用的是TYPO3。我们从后端获取一些数据,它们在html页面中分配如下。如何访问JavaScript中的TYPO3设置

var items = {}; 
items.item1 = {settings.item1}; 
items.item2 = {settings.item2}; 
items.item3 = {settings.item3}; 

然后将值分配给按钮。这些值将在触发操作时发送回JS。 {settings.item*}来自TYPO3后端。我想知道的是如何将上面的代码块添加到单独的JS文件中,而不是将它添加到HTML页面中。当我试图直接添加它,它不工作作为{settings.item*}来自TYPO3

感谢

+1

您可以提供给我们当前的Typoscript或PHP,在前端将这些值写入HTML吗? –

回答

0

你必须从HTML拿起你的设置,因为这是TYPO3将呈现给你。但你可以使用HTML的数据属性,例如

您还可以将整个{settings}数组呈现为一个JSON字符串并将其转换为数据属性,然后使用JavaScript进行挑选。

0

您可以使用HTML文件的JavaScript(模板,部分布局)

您需要添加

语法之间的JavaScript代码: <![CDATA[JavaScript代码]]>TYPO3代码<![CDATA[的javascript代码]]>

<script type="text/javascript"> 
<![CDATA[ 
{ 
var items = {}; 
items.item1 = ]]>{settings.item1}<![CDATA[; 
items.item2 = ]]>{settings.item2}<![CDATA[; 
items.item3 = ]]>{settings.item3}<![CDATA[; 
]]> 
</script> 

谢谢

我希望它有帮助!

0

您可以更精确地定义上下文吗?在TypoScript,Flexform,PHP(Extensionmanager)中定义的设置在哪里?

如果您在Typo脚本定义设置可以使用:

page.inlineSettings { 
    setting1 = Hello 
    setting2 = GoOnTop 
} 

,以使其可在JavaScript为:

​​

参见:https://docs.typo3.org/typo3cms/TyposcriptReference/Setup/Page/Index.html#inlinesettings

也许这将被删除未来的版本,因为它的目的是通过ExtJS使用。也不可能使用stdWrap等。

另外,更灵活,方法是使用

page.jsInline { 
    10 = TEXT 
    10.stdWrap.dataWrap = var pageId = {TSFE:id}; 
} 

这允许您使用完整的TypoScript如文本,dataWrap等

参见:https://docs.typo3.org/typo3cms/TyposcriptReference/Setup/Page/Index.html#jsinline

0

我不会编写JavaScript从PHP只是为了一些配置。我将它们存储在DOM元素的数据属性中,并通过JavaScript获取它。也许这对你也是一种选择。