[英]How to include .js files in own Typo3 6.2 Extension?
我在Typo3 6.2中使用扩展生成器,extbase和fluid进行了扩展。
我想在前端添加一个时间选择器。
我在线找到了一个.js文件,并希望在扩展名有效时都将其包括在内,因为我经常需要它。
我将文件放在这里: EXT:/Resources/Public/JS/timepicker.js 。
我看到了一个解决方案这个文章,但增加
page.includeJS.tx_myExtension = EXT:/Resources/Public/JS/timepicker.js
在我的setup.txt底部无法使用。
我仍然没有在那里定义page
,所以我认为这可能是原因,但是我真的不知道-这是我在/ typo3conf / ext // Configuration / TypoScript /中的 setup.txt(自动生成):
plugin.tx_myext_test {
view {
templateRootPath = {$plugin.tx_myext_test.view.templateRootPath}
partialRootPath = {$plugin.tx_myext_test.view.partialRootPath}
layoutRootPath = {$plugin.tx_myext_test.view.layoutRootPath}
}
persistence {
storagePid = {$plugin.tx_myext_test.persistence.storagePid}
}
}
最终,我希望前端函数能够与datepicker一起使用,因为我在根模板中包含了jQuery。 但是我不想在其中包括时间选择器,只是为了我的扩展。
<script>
$(function () {
$('.lc-datepicker').datepicker();
$('.lc-timepicker').timepicker();
});
</script>
您可以为EXT:
使用正确的语法:
page.includeJS.myextension = EXT:extkey/Resources/Public/JS/timepicker.js
(您忘记了extkey
。)
请记住,使用includeJSFooter
代替includeJS
可能会提高您网站的性能。
page.includeJS
是全球可用的TypoScript属性。 因此,如果您在网站的根TS模板中使用此代码,则无论该插件是否在使用中,JavaScript文件都会嵌入到每个页面中。 因此,如果您只想在嵌入了插件的页面上使用JS,我建议使用下面的Fluid方法。
为此,请在模板中使用Resource ViewHelper:
<script src="{f:uri.resource(path: 'JS/timepicker.js')}"></script>
<script>
$(function () {
$('.lc-datepicker').datepicker();
$('.lc-timepicker').timepicker();
});
</script>
Resource ViewHelper使用相对于扩展的Resources/Public
目录的路径。
您可以定义在控制器类中包含JS,以确保仅为您的扩展加载。
在TypoScript中,要配置JS文件:
plugin.tx_myext.settings.javascript.file = EXT:myext/Resources/Public/JS/timepicker.js
在控制器动作中:
$this->response->addAdditionalHeaderData('<script src="' .
$GLOBALS['TSFE']->tmpl->getFileName($this->settings['javascript']['file']) .
'" type="text/javascript"></script>');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.