在TYPO3后端中添加jQuery函数

时间:2019-05-13 08:35:35

标签: php typo3 extbase

当我打开“页面”视图时,我需要在TYPO3后端中使用自定义jQuery函数。

我为预处理添加了一个钩子

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'] 
['cms/layout/class.tx_cms_layout.php']['tt_content_drawItem'] 
['tx_dashboard'] =
    \vendor\dashboard\Hooks\Backend\IconCorrection::class;

然后在我的IconCorrection中添加

public function preProcess(PageLayoutView &$parentObject, &$drawItem, &$headerContent, &$itemContent, array &$row)
{
    GeneralUtility::makeInstance(PageRenderer::class)
        ->addRequireJsConfiguration([
            'paths' => [
                'iconCorrection'=>'/typo3conf/ext/dashboard/Resources/Public/JavaScript/hidePreviewIcon.js',
            ],
            'shim' => [
                'iconCorrection' => ['jquery'],
            ],
        ]);

}
}

在我的hidePreviewIcon.js中,我有一个console.log 我想要类似$(".btn").hide();的东西,但目前仅测试js是否已加载。

在我的开发工具中,我看到js已加载,但未执行console.log。

我缺少什么? 我可以只使用addJsFile而不是addRequireJsConfiguration 我正在使用TYPO3 v8.7.2

编辑:

我添加了

$renderer =\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Page\PageRenderer::class);
$renderer->addJsFile('/typo3conf/ext/trumpf_editordashboard/Resources/Public/JavaScript/hidePreviewIcon.js', 'text/javascript', false, false, '', true, '|', false, '');

使用我的preProcess()功能。

现在,已加载.js并执行console.log();。 但是我的

$(document).ready(){$(".btn").hide(); 

不起作用。我认为它执行得太早了

编辑2:做到了:

$(function(){
$('#typo3-contentIframe').ready(function(){
    console.log("loaded");
    $(".btn").hide();

});
});

0 个答案:

没有答案