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:
- 有没有办法修复文本编辑器,使保存HTML 功能正常工作?还是有其他功能可以代替使用?或者有没有像 saveHTML 函数一样优雅的解决方法?如何解决这个问题? (因为我最后的想法是制作自己的 Java 函数,将文本转换为 HTML,但与保存 HTML)
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 一起交付,这对于大多数用例来说不是一个选项。
首先让我声明这是我的第一个问题,我是这个社区的新人。请善待,不要犹豫纠正我,指导我在哪里可以找到答案或学习等。
我发布这个问题是为了找到解决方案的最后希望,因为我自己(也没有在同事的帮助下)找到或想出任何解决方案。
基本上 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:
- 有没有办法修复文本编辑器,使保存HTML 功能正常工作?还是有其他功能可以代替使用?或者有没有像 saveHTML 函数一样优雅的解决方法?如何解决这个问题? (因为我最后的想法是制作自己的 Java 函数,将文本转换为 HTML,但与保存 HTML)
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 一起交付,这对于大多数用例来说不是一个选项。