如何在JavaScript中访问TYPO3设置

时间:2017-01-30 10:56:40

标签: javascript php jquery typo3

在我的项目中,我们使用的是TYPO3。我们从后端获取一些数据,并在html页面本身中分配如下。

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

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

由于

4 个答案:

答案 0 :(得分:0)

您必须从HTML中获取设置,因为这是TYPO3将为您呈现的内容。但你宁愿利用HTML的数据属性,例如

您还可以将整个_数组作为JSON字符串呈现为数据属性,并使用您的JavaScript选择它。

答案 1 :(得分: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>

由于

我希望它有所帮助!!

答案 2 :(得分:0)

您能更准确地定义上下文吗?在TypoScript,Flexform,PHP(Extensionmanager)中定义了哪些设置?

如果您在TypoScript中定义了设置,则可以使用:

page.inlineSettings {
    setting1 = Hello
    setting2 = GoOnTop
}

要使它们在JavaScript中可用:

TYPO3.settings = {"TS":{"setting1":"Hello","setting2":"GoOnTop"}};

请参阅: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,如TEXT,dataWrap等。

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

答案 3 :(得分:0)

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