我正在尝试将CLEditor合并到我的一个应用程序中。但在某个地方,这是一个导致一些渲染问题的断开连接。
前端使用 jQuery/HTML/CSS 后端使用 Java/Oracle/Spring/Struts 2,我不太确定问题出在哪里。我认为这是 CLEditor 不知何故感到困惑。
我的代码如下所示。
<textarea id="editor" name="contractTemplate.contractBody" value="${contractTemplate.contractBody}"></textarea>
在页面的下方,我有 CLEditor 设置如下:
<script type="text/javascript">
$(function() {
$('#editor').cleditor({
width: 'auto',
height: 300,
controls: "font bold italic | " +
"bullets numbering | " +
"alignleft center alignright justify | " +
"outdent indent | " +
"undo redo " +
"rule | cut copy paste pastetext | print source",
fonts: // font names in the font popup
"Arial,Arial Black,Courier New,Narrow,Garamond," +
"Georgia,Sans Serif,Serif,Tahoma,Trebuchet MS,Verdana",
bodyStyle: "margin:4px; font: 10pt Arial, Verdana; cursor:text",
docType: '<!DOCTYPE html>'
});
});
</script>
当我第一次加载页面时,它上面的textarea
内容显示得很好。我可以使用左对齐,右对齐,居中来格式化我希望的东西。我能够创建正确的外观ul
和ol
(我需要的大部分功能)。我还可以使用Show Source
提供的代码查看代码。我提交给我,它按预期Action
保存了我发送的格式化文本。CLOB
但是,当我重新访问要编辑的页面(我的一个用例)时,以前格式化的文本已损坏...通常,如果我将某些文本右对齐,它会从其中剥离标签,强制左对齐并将 a">
添加到textarea
. 你可以想象从那里引入的混乱。如果您没有抓住">
并保存它,则会删除所有文本">
幸存和随后的保存将使您">
保存到数据库中。
这个问题可能来自哪里?到目前为止,我一直找不到任何有类似问题的人。
在此先感谢您的帮助!
编辑:
也许这个问题与 CLEditor 无关......我只是快速安装了TinyMCE :
<script src="//tinymce.cachefly.net/4.0/tinymce.min.js"></script>
<script>
tinymce.init({selector:'textarea'});
</script>
我得到同样的行为......
编辑:
进一步的调查表明,沿线某处没有正确逃脱。
这是来自Inspect Element
功能:
<textarea aria-hidden="true" style="display: none;" id="editor" name="contractTemplate.contractBody" value="<p style=" text-align:="" right;"="">Right Align</p>
<p style="text-align: center;">Center</p>
<p style="text-align: left;">Left Align</p>"></textarea>
正如您所看到的,value="<p style"
最终关闭了报价并且没有正确地逃避事情。页面越往下< and >
,> and <
我看到了问题,但不知道如何解决。