CropViewHelper 显示 HTML 个标签

CropViewHelper show HTML tags

我在模板中使用 format.crop ViewHelper 来裁剪文本。

输出显示HTML个标签的问题:

查看助手:

<f:format.crop maxCharacters="250" respectHtml="false">{book.description}</f:format.crop>

输出HTML:

 <p>This is <p> and </p> HTML tags appears</p>

respectHtml="false"respectHtml="true" 我都试过了,但都不行。

Fluid 默认转义 HTML 以防止跨站脚本漏洞。

这是设计使然。集成商需要针对特定​​区域禁用此行为。这可以通过使用 f:format.htmlf:format.raw 来完成,而 raw 将阻止所有安全机制,因此应该很少使用。

format.html 确实应用了另一种配置,它定义了哪些 HTML 标签和属性是允许的:https://docs.typo3.org/m/typo3/reference-typoscript/master/en-us/Functions/Parsefunc.html

你的具体例子可以是:

<f:format.html>
    <f:format.crop maxCharacters="250" respectHtml="1">
        {book.description}
    </f:format.crop>
</f:format.html>

或:

<f:format.raw>
    <f:format.crop maxCharacters="250" respectHtml="1">
        {book.description}
    </f:format.crop>
</f:format.raw>

如果愿意,您还可以使用内联符号:

{book.description -> f:format.crop(maxCharacters: 250, respectHtml: true) -> f:format.html()}

我建议尊重 HTML,否则 HTML 可能会被破坏,因为结束标记可能会被切断。

如果您根本不需要 HTML 输出,请在应用 f:format.crop 之前使用 f:format.stripTags,以便事先删除 HTML 标签。