我处于一种奇怪的情况,我以前没有问题实现我正在寻找的东西。以下代码是托管 TinyMCE 富文本框的 HTML 页面的一部分:
...
<textarea id="editing_field">This text is supposed to appear in the rich textbox</textarea>
...
起初,这按预期工作,创建了一个包含文本的富文本框。不过,在某些时候,TinyMCE 代码决定将 textarea HTML 转换为以下内容:
<textarea id="editing_field" style="display: none;"/>
This text is supposed to appear in the rich textbox
这会呈现文本框下方的文本,这并不完全理想。我不知道是什么导致了这种行为变化,尽管我也在使用 jQuery 以及它是否会产生任何影响。
我可以通过在页面加载后使用 javascript 将内容加载到文本框中来解决此问题,方法是使用 ajax 或将文本隐藏在 HTML 中并仅移动它。但是,如果可能的话,我想直接从 PHP 将文本发送到文本框中。任何人都知道这里发生了什么以及如何解决它?
更新 2:我已经成功地重现了导致行为改变的情况:起初我只是在 textarea 中有纯文本,就像在第一个代码片段中一样。但是,保存内容后,文本将如下所示:
<p>This text is supposed to appear in the rich textbox</p>
标签的存在p
会导致 TinyMCE 触发封闭文本区域到只是单个标签的文本区域之间的转换(如上图所示)。
更新 1:添加 TinyMCE 配置文件:
tinyMCE.init({
// General options
mode : "exact",
elements : "editing_field",
theme : "advanced",
skin : "o2k7",
skin_variant : "black",
plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",
save_onsavecallback : "saveContent",
// Theme options
theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull",
theme_advanced_buttons2 : "search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,forecolor,backcolor",
theme_advanced_buttons3 : "hr,removeformat,|,sub,sup,|,charmap,emotions,|,print,|,fullscreen,code",
theme_advanced_buttons4 : "styleselect,formatselect,fontselect,fontsizeselect",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_statusbar_location : "bottom",
theme_advanced_resizing : false,
// Drop lists for link/image/media/template dialogs
template_external_list_url : "lists/template_list.js",
external_link_list_url : "lists/link_list.js",
external_image_list_url : "lists/image_list.js",
media_external_list_url : "lists/media_list.js",
// Replace values for the template plugin
template_replace_values : {
username : "Some User",
staffid : "991234"
},
width : "450",
height : "500"
});