繁体   English   中英

如何在自己的Typo3 6.2扩展名中包含.js文件?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM