Primefaces 文本编辑器:将文本转换为 HTML 且 JavaScript 无效

Primefaces textEditor: converting text to HTML with JavaScript not working

首先让我声明这是我的第一个问题,我是这个社区的新人。请善待,不要犹豫纠正我,指导我在哪里可以找到答案或学习等。

我发布这个问题是为了找到解决方案的最后希望,因为我自己(也没有在同事的帮助下)找到或想出任何解决方案。


基本上 PrimeFaces p:editor 当前在我正在处理的程序中的一个页面上使用。用户使用它来输入和格式化文本,然后将其作为电子邮件发送。目前电子邮件内容由Java脚本函数保存HTML转换为HTML,所以邮件代码看起来完全像这样:

  <div style="font-weight:normal; font-style:normal">

  <div style="font-size:11pt; font-family: Calibri,sans-serif">
    <br>In case of questions please send a message to: <a href="mailto:sample@sample.com" target="_blank">sample@sample.com</a>.
    <br><br>Yours Sincerely
  </div>

然而,从某个时刻开始,用户一直在报告编辑器不可预测地更改文本字体等,这就是我发现它的原因deprecated and wanted to change it to p:textEditor

textEditor 似乎工作正常(编辑)并且看起来不错,但在测试期间检查了一封已发送的电子邮件。发现textEditor不知何故不支持Java脚本函数saveHTML,所以函数失败,发送的消息代码完全是这样的:

<p><br></p><p>In case of questions please send a message to:: <a href="mailto:sample@sample.com" target="_blank">sample@sample.com</a>. </p><p><br></p><p>Yours Sincerely</p><p><br></p><p><strong>Anna Li</strong></p>

然后我发现textEditor是基于(?)QuillJs (info in textEditor documentation) and if I understood this GitHub issue正确的,那么它不支持将文本转换为HTML。

所以 question/s:

PrimeFaces 版本 7.0.7; PrimeFaces 扩展版本 7.0.2.

请注意,我不想使用另一个 organization/company 的文本编辑器。

您遇到的问题是 p:textEditor 生成不可移植的 HTML 代码,这确实严重限制了它的整体用例。 最相关的 GitHub 问题似乎是 PrimeFaces TextEditor: value returns HTML with Quill editor specific CSS (aka is PF's Quill implementation useless?) #4486

这看起来除了切换到 pe:ckEditor 之外没有可行的解决方法,这在您的情况下应该不是什么大问题,因为您已经在使用 PE。

p:textEditor uses CSS classes instead of inline style sheets 用来生成 HTML 输出的 Quill 编辑器。您需要将这些 CSS 定义与生成的 HTML 一起交付,这对于大多数用例来说不是一个选项。