如何在 TYPO3 9.5 中返工 addAdditionalHeaderData

How to rework addAdditionalHeaderData within TYPO3 9.5

在将我们的代码库升级到 9.5 时,我发现使用

的旧方法
$res = $this->response;
$res->addAdditionalHeaderData('<script src="' . $scriptPath . '" type="text/javascript"></script>');

这一切都发生在扩展 ActionController 的扩展控制器中,这些方法似乎不再存在,我找不到实现该功能的新方法。那么我如何从我的 extbase 扩展中添加额外的头数据到我的动作控制器中呢?

非常感谢帮助

我们使用 PageRenderer class 完成了它,它可以在 ActionController

中实例化
    /** @var PageRenderer $pageRenderer */
    $pageRenderer = GeneralUtility::makeInstance(PageRenderer::class);
    $pageRenderer->addHeaderData($additionalHeaderData);

从 TYPO3 10.4 开始,您可以使用 AssetCollector class 添加 Javascript 或 CSS。我已经为以后找到这个主题的用户添加了这个。

use TYPO3\CMS\Core\Utility\GeneralUtility;

$assetCollector = GeneralUtility::makeInstance(\TYPO3\CMS\Core\Page\AssetCollector::class);
$assetCollector->addJavaScript('my_identifier', $scriptPath, [], ['priority' => true]);

必须将优先级设置为 true,才能将 Javascript 包含到 html 页面的 header 中。