2

我的页面上有一个带有 tinyMCE (textarea) 的网格和 div。Div 最初是隐藏的。填充文本区域后:

$('#editor').val(data.Content);
$("#divGrid").hide("slide");
$("#divCard").show("slide");
InitMCE();

tinyMCE 中的内容出现并且组件是可编辑的,但是在使用 textarea (#divCard) 隐藏 div 后,再次填充 $('#editor').val(data.Content); tinyMCE 显示为只读且内容不显示。

在函数 InitMCE() 中是代码:

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();

和其他一些变化,但没有成功。

4

2 回答 2

0

你为什么隐藏文本区域。

如果您在 TinyMCE 初始化后检查 html DOM 结构,您会看到 TinyMCE 使用 div 和 span infront oftextarea来呈现您的文本,但是当您尝试编辑它时,您实际上是在编辑 textarea。

所以如果你隐藏你的文本区域,你将无法再编辑它。

于 2012-11-12T12:11:50.823 回答
0

当源 html 元素(在您的情况下为 textarea)在编辑器初始化时隐藏时,可能会出现几个问题。Tinymce 将负责隐藏以前的文本区域。解决您的问题的方法是在初始化之前设置 textarea 可见 - 然后您之后编辑其内容就没有问题了。

于 2012-11-12T12:31:03.757 回答