即时尝试使用TinyMCE作为网页表单的一部分。整合工作正常,但一旦您提交表格,当然数据将被验证。Tinymce问题 - 额外段落
如果验证评估为false,例如某些其他输入尚未填写,那么我当然不希望用户重新输入所有数据。所以我将Tinymce内容传回重新加载的视图。发生
以下问题:在TinyMCE的textarea的
内容:测试
含量TinyMCE的重装后:<p>test</p>
所以额外的段落每次添加的包装。
我希望Tinymce能够将输入视为插入到html视图中,以便纯文本视图保持不变,并且不会插入额外的段落。
我该如何做到这一点?
感谢您的回复。这只是一个示例输入,我肯定需要一个RTE,因为我正在构建一些定制的CMS功能。我现在使用html_entity_decode()来工作,html来自数据库,是的,我确实过滤了用户输入(基本上是CI,但我自己测试了XSS,只是为了确保...)。我不知道如果我这样做是最优雅的方式......但以下似乎为我工作的罚款:
JS部分:
<script type="text/javascript" src="<?php echo base_url();?>tinymce/jscripts/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
$(document).ready(function(){
tinyMCE.init({
theme : "advanced",
mode : "textareas",
theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",
theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
entity_encoding : "raw",
content_css : "<?php echo base_url();?>xcss/standard_tinymce.css",
});
});
</script>
生成表单文本域(配置项的方式) :
echo form_textarea('content', html_entity_decode($content));
那就是它。
等的输入:
<p><strong>test</strong></p><p>bla bla bla</p>
现在会显示在TinyMCE的下面的方式,如果它被保存在$内容:
测试
唧唧歪歪
如果您提交表单,那么后数据将再次等于$内容。这正是您应该考虑检查针对注射或XSS攻击的发布数据的问题,所以请不要以同样的方式进行,除非您跟踪接下来发生的情况......我的解决方案可能不是非常安全所有情况下,我认为这很好,但是如果有人知道更好,我肯定愿意更多地了解这一点;)