首先,请允许我声明这是我的第一个问题,我是这个社区的新成员。请客气,不要犹豫,纠正我,将我带到可能找到答案或学习的地方,等等。
我发布此问题是寻找解决方案的最后希望,因为我自己没有找到或提出任何解决方案(也没有得到同事的帮助)。
基本上,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。
所以问题:
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一起提供,这在大多数情况下不是一个选择。