我正在尝试将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
中发送的格式化文本。但是,当我重新访问要编辑的页面(我的一个用例)时,先前格式化的文本已损坏...通常,如果我右对齐某些文本,则会从中删除标记,强制左对齐并添加">
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 <
我看到了问题,但我不确定如何修复它。
答案 0 :(得分:0)
有人希望从我缺乏关注中受益......任何一位编辑都没有错。上面提到的问题是我不注意自己在做什么。而不是删除问题,我会留下它,以便有人会搜索,看看我做错了什么来解决他们的问题......
使用textarea
时请勿使用<textarea value="some value"></textarea>
使用<textarea>some value</textarea>