PrimeFaces 7.0 <p:textEditor HTML-sanitizer 丢弃文本格式,例如居中
PrimeFaces 7.0 <p:textEditor HTML-sanitizer discards text formatting, such as centering
在 PrimeFaces 8 中,似乎可以在使用 <p:textEditor
组件时启用/禁用 HMTML -sanitizer,只需指定 secure='false'
禁用它和 secure='true'
启用它.我试图在 PrimeFaces 7.0 中禁用它,如下所示:
<p:textEditor id="quillToolbarId" secure='false' widgetVar="editor2" height="300" value="#{editTemplatesBean.kaufAnbotTemplate}" placeholder="Enter your content">
但消毒剂似乎仍然有效。
我的问题是,每当我将 primeFaces p:textEditor 中的文本格式化为居中对齐时,HTML 清理器只会删除我的格式,因此文本最终没有格式化。
解决此问题的一种方法是直接使用 Quill 而不是 Sanitize input.This 作品,但随后我遇到了其他问题,例如这个问题:
https://github.com/quilljs/quill/issues/1379
这也需要解决。
请帮忙!
PrimeFaces 7 的 TextEditor 中没有安全的 属性。如果您查看 TextEditorRenderer.decode 的代码,您会看到调用了消毒器
if (PrimeApplicationContext.getCurrentInstance(context).getEnvironment().isHtmlSanitizerAvailable()) {
value = HtmlSanitizer.sanitizeHtml(value,
editor.isAllowBlocks(), editor.isAllowFormatting(),
editor.isAllowLinks(), editor.isAllowStyles(), editor.isAllowImages());
}
如果您查看 PrimeEnvironment,您会发现如果 class org.owasp.html.PolicyFactory
在 class 路径上可用,则会设置 属性:
htmlSanitizerAvailable = LangUtils.tryToLoadClassForName("org.owasp.html.PolicyFactory") != null
所以你要么:
- 更新到 PF 8
- 确保 class 在 class 路径
上没有这个 class
- 覆盖渲染器和change/remove检查代码
在 PrimeFaces 8 中,似乎可以在使用 <p:textEditor
组件时启用/禁用 HMTML -sanitizer,只需指定 secure='false'
禁用它和 secure='true'
启用它.我试图在 PrimeFaces 7.0 中禁用它,如下所示:
<p:textEditor id="quillToolbarId" secure='false' widgetVar="editor2" height="300" value="#{editTemplatesBean.kaufAnbotTemplate}" placeholder="Enter your content">
但消毒剂似乎仍然有效。
我的问题是,每当我将 primeFaces p:textEditor 中的文本格式化为居中对齐时,HTML 清理器只会删除我的格式,因此文本最终没有格式化。
解决此问题的一种方法是直接使用 Quill 而不是 Sanitize input.This 作品,但随后我遇到了其他问题,例如这个问题:
https://github.com/quilljs/quill/issues/1379
这也需要解决。
请帮忙!
PrimeFaces 7 的 TextEditor 中没有安全的 属性。如果您查看 TextEditorRenderer.decode 的代码,您会看到调用了消毒器
if (PrimeApplicationContext.getCurrentInstance(context).getEnvironment().isHtmlSanitizerAvailable()) {
value = HtmlSanitizer.sanitizeHtml(value,
editor.isAllowBlocks(), editor.isAllowFormatting(),
editor.isAllowLinks(), editor.isAllowStyles(), editor.isAllowImages());
}
如果您查看 PrimeEnvironment,您会发现如果 class org.owasp.html.PolicyFactory
在 class 路径上可用,则会设置 属性:
htmlSanitizerAvailable = LangUtils.tryToLoadClassForName("org.owasp.html.PolicyFactory") != null
所以你要么:
- 更新到 PF 8
- 确保 class 在 class 路径 上没有这个 class
- 覆盖渲染器和change/remove检查代码