首先,请允许我声明这是我的第一个问题,我是这个社区的新成员。请客气,不要犹豫,纠正我,将我带到可能找到答案或学习的地方,等等。

我发布此问题是寻找解决方案的最后希望,因为我自己没有找到或提出任何解决方案(也没有得到同事的帮助)。

基本上,PrimeFaces p:editor当前在我正在处理的程序的页面中使用。用户使用它来输入和设置文本格式,然后将其作为电子邮件发送。当前,电子邮件内容是通过JavaScript函数saveHTML转换为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:[email protected]" target="_blank">[email protected]</a>.
    <br><br>Yours Sincerely
  </div>

但是,从某个时刻开始,用户一直在报告说编辑器意外地更改了文本字体,等等,这就是我发现它是deprecated并想将其更改为p:textEditor的方式。

textEditor似乎可以正常工作(进行编辑)并且看起来不错,但是在测试过程中检查了已发送的电子邮件。结果发现textEditor不支持JavaScript函数saveHTML,因此该函数失败,消息代码的发送方式完全如下:
<p><br></p><p>In case of questions please send a message to:: <a href="mailto:[email protected]" target="_blank">[email protected]</a>. </p><p><br></p><p>Yours Sincerely</p><p><br></p><p><strong>Anna Li</strong></p>

然后我发现textEditor基于(?)QuillJs(info in textEditor documentation),如果我正确理解了GitHub issue,则它不支持将文本转换为HTML。

所以问题:
  • 有没有一种方法可以修复textEditor,以便saveHTML函数起作用?还是有另一个功能可以代替使用?还是有没有像saveHTML函数一样优雅的解决方法?如何解决呢? (因为我的最后一个想法是制作自己的Java函数,该函数将文本转换为HTML,但是与saveHTML相比,此选项很长,很痛苦,很困难而且非常笨拙)

  • PrimeFaces版本7.0.7; PrimeFaces Extension版本7.0.2。

    请注意,我不想使用其他组织/公司的文本编辑器。

    最佳答案

    您遇到的问题是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输出。您需要将这些CSS定义与生成的HTML一起提供,这在大多数情况下不是一个选择。

    10-04 13:19