Tinymce 问题 - 额外段落

标签 tinymce

我正在尝试使用 TinyMCE 作为网络表单的一部分。集成工作正常,但是一旦您提交表单,数据当然就会得到验证。

如果验证结果为 false,例如尚未填写其他一些输入,那么我当然不希望用户重新输入所有数据。所以我将 Tinymce 内容传递回重新加载的 View 。

出现以下问题:

Tinymce Textarea 中的内容:测试

重新加载后Tinymce中的内容:<p>test</p>

因此每次都会添加一个额外的段落作为包装。

我希望Tinymce对待输入,就像它被插入到html View 中一样,这样纯 TextView 就可以了,并且不会插入额外的段落。

我怎样才能实现这个目标?

<小时/>

感谢您的回复。这只是一个示例输入,我确实需要 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>

生成表单textarea(CI方式):

echo form_textarea('content', html_entity_decode($content));

就是这样。

输入如下:

<p><strong>test</strong></p><p>bla bla bla</p>

如果存储在$content中,现在将在tinymce中以以下方式显示:

测试

啦啦啦啦

<小时/>

如果您提交表单,那么后期数据将再次等于 $content。这正是您应该考虑检查注入(inject)或 XSS 攻击的发布数据的点,所以请不要以同样的方式执行此操作,除非您跟踪接下来发生的情况...我的解决方案可能不太安全在所有情况下,就我而言,这都很好,我认为,但如果有人更了解,我绝对愿意了解更多信息;)

最佳答案

您可以通过指定明确告诉 TinyMCE 不要将您的内容包装到根标记中

forced_root_block : false

在您的 TinyMCE 初始化选项中。

但是,由于各种原因,不建议这样做,请阅读常见问题解答中的此条目: http://tinymce.moxiecode.com/wiki.php/TinyMCE_FAQ#TinyMCE_produce_BR_elements_on_enter.2Freturn_instead_of_P_elements.3F

关于Tinymce 问题 - 额外段落,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5211687/

相关文章:

tinymce工具栏 float 工具栏

javascript - 动态加载tinymce

javascript - 如何检测tinymce 4中菜单何时呈现?

jquery - 从 Chrome 上的 tinymce 编辑器中删除 <p> 标签

TinyMCE插件: show a tooltip on an element

javascript - tinymce加载后执行js函数

javascript - tinyMce 4 中的 onDblclick 函数用于编辑页眉和页脚

javascript - 如何在 AJAX 调用后使用新数据重新初始化tinyMCE?

javascript - Tinymce 文本编辑器不适用于 Bootstrap 模式窗口

javascript - TinyMCE 剥离所有标记