当我打开“页面”视图时,我需要在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();
});
});