这是我的代码:
function OpenContentBuilder()
{
$.post("tools/tools_builder.php", {
_open_content_builder : 1
}, function(data)
{
$("#container").html(data);
// Go Back to Course Section List - Button
$("#course_builder_go_back").click(function()
{
tinyMCE.execCommand('mceRemoveEditor ', false, 'target_builder');
InitCourseContentList()
});
if (tinymce.editors.length < 1) {
tinymce.init({
mode : "none",
width : 680,
height : 300,
selector : "textarea#target_builder",
theme : "modern"
});
} else if (tinymce.editors.length > 0){
tinyMCE.execCommand('mceAddEditor', true, 'target_builder');
} else {
alert("Cannot load editor!");
}
});
}
textarea建立在这一行:
$("#container").html(data);
为它带来的html看起来像这样:
<div>
<textarea id="target_builder" ></textarea>
</div>
第一次加载时,它可以工作。如果我点击后退按钮去了页面上的其他位置,然后回来(整个页面网址永远不会改变:用ajax
完成),textarea
在那里,编辑不是。< / p>
当我在alert
测试中执行tinymce.editors.length > 0
时,会显示(在第二次或更多次加载时)。
我看到许多引用此问题的问题,并说您必须删除并添加execCommand
的实例。我是否正确使用了这个?
答案 0 :(得分:7)
我想解决的问题是你必须在再次调用之前删除tinymce 所以在执行时添加tinyMCE.remove();删除它们。 在接下来的电话会议上,Tinymce将会在那里。
答案 1 :(得分:0)
问题是我在删除编辑器实例之前没有先删除焦点。
我这样做了:
if ( typeof tinyMCE != 'undefined') {
tinyMCE.execCommand('mceFocus', true, 'target_builder');
tinyMCE.execCommand('mceRemoveEditor', true, 'target_builder');
}