2

我在 SO 以及其他网站上看到了关于这个主题的其他问题,但我一直无法找到解决方案。我正在使用 TinyMCE 允许用户输入格式化文本。有一个保存按钮,它使用 JQuery 进行 Ajax 调用,并将 textarea 内容上传到服务器,在服务器中以 html 的形式存储在数据库中。

稍后,当用户返回页面时,我想显示他们之前输入的格式化文本。因此,当页面加载时,html 存储在 DataTable 的隐藏列中。TinyMCE 文本区域在页面加载时不存在,它是在用户单击按钮时使用 JQuery 动态构建的。JQuery 脚本将隐藏表格单元格中的 html 复制到 textarea 中,然后我再次使用 JQuery 插件调用 TinyMCE,将 textarea 转换为 TinyMCE 编辑器。

问题是 TinyMCE 编辑器显示保存的 html,包括 html 标签。例如:

<p>Saved text</p>

我不希望它显示 html 标签,我希望它相应地格式化文本。我该如何解决?任何和所有的帮助表示赞赏。

我的 javascript 代码的缩写版本:

$('img').live('click', function() {

    // Copy the html into the textarea.
    $(this).closest('tr').next().find('textarea').val(gData[id].comments);

    // Convert the textarea into an editor.
    $(this).closest('tr').next().find('textarea').tinymce({

        // Location of TinyMCE script
        script_url : 'js/tiny_mce/tiny_mce.js',

        theme : "simple"
    });
}
4

2 回答 2

4

您正在客户端显示标签的编码版本。

因此,tinyMCE 将它们视为已编码并按原样显示它们。

例如:

它看到:&lt;p&gt;===> <p>

或者&lt;p&gt;Saved text&lt;/p&gt;===> <p>保存的文本</p>

于 2012-08-01T20:17:43.780 回答
2

解决方案非常简单。您所要做的就是在客户端解码文本。

在 Ruby on Rails 中

<%= raw '<p>Some Text<p>' %>

输出为“一些文本”。html标签被删除。

于 2013-02-19T09:01:30.950 回答