2012-08-01 962 views
1

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

之后,当用户回到页面时,我想显示他们之前输入的格式化文本。所以,当页面加载时,html存储在DataTable的隐藏列中。 TinyMCE textarea在页面加载时不存在,当用户单击按钮时,它使用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" 
    }); 
} 

回答

2

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

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

例如:

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

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

+0

实际上,它看起来像数据库中的数据是未编码的,但它在页面加载时得到编码,所以我通过在显示它之前解码客户端上的html来解决它。感谢您指点我正确的方向! – jg8273 2012-08-01 20:56:30

+0

@ jg8273没问题^ _ ^乐意帮忙! – Neal 2012-08-01 20:59:03

+0

@ jg8273我更新了我的答案以适合您的解决方案:-) – Neal 2012-08-01 20:59:54

1

该解决方案是相当简单的。你所要做的就是解码客户端的文本。

在Ruby on Rails的

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

被输出为 '某些文本'。 html标签被删除。