在我的项目中,我们使用的是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
由于
答案 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获取它。也许这也是你的选择。