我的页面上有一个grid和div,其中包含tinyMCE(textarea)。 Div最初是隐藏的。填充textarea之后:
$('#editor').val(data.Content);
$("#divGrid").hide("slide");
$("#divCard").show("slide");
InitMCE();
tinyMCE中的内容出现且组件可编辑,但在用textarea(#divCard)隐藏div后,再次填充$('#editor').val(data.Content);
tinyMCE只显示,内容不显示。
是代码:
tinyMCE.init({
mode: "textareas",
theme: "advanced",
...
});
我试过
tinyMCE.execCommand("mceRemoveControl", false, '#editor');
$('#editor').val(data.Content);
$("#divGrid").hide("slide");
$("#divCard").show("slide");
InitMCE();
和:
tinyMCE.remove($('textarea'));
$('#editor').val(data.Content);
$("#divGrid").hide("slide");
$("#divCard").show("slide");
tinyMCE.execCommand("mceAddControl", false, '#editor');
InitMCE();
以及其他一些变化,但没有成功。
答案 0 :(得分:0)
你为什么要隐藏textarea。
如果在初始化TinyMCE之后检查html DOM结构,您将看到TinyMCE使用div和span textarea
前面来渲染您的文本,但是当您尝试编辑它时,您实际上正在编辑textarea
因此,如果你隐藏你的textarea,你将无法再编辑它。
答案 1 :(得分:0)
在编辑器初始化时隐藏源html元素(在您的情况下为textarea)时可能会出现几个问题。 Tinymce将负责隐藏前textarea。 您的问题的解决方案是在初始化之前将textarea设置为可见 - 然后您可以在编辑其内容后遇到任何问题。