我正在尝试动态创建和销毁像这样的TinyMCE编辑器。 1)看来如果我在创建之后设置断点并检查tinymce编辑器,即在第一个for循环之后 - 我在浏览器中看不到它们 2)我也没有在控制台的tinymce.editors中看到它们
因此我的毁灭不起作用。然而,在一切之后,我可以看到编辑。 因为第二个for循环不会被执行。
问题主要是,是否有类似函数必须退出然后浏览器使DOM更改?如果是这样我应该睡觉?我从中得到了这个想法 What is the JavaScript version of sleep()?,即浏览器在函数存在或类似之后进行DOM更改。 任何人都可以赐福我吗?
for (var i=0;i<10;i++)
{
//i=0;
divObj = document.createElement('div');
divObj.className = 'top_div';
divObj.id = 'top_div_' + i;
divObj.innerHTML = 'Tiny Editor';
var textareaObj = document.createElement('textarea');
textareaObj.className = 'simpleEdit';
textareaObj.id = 'nic_' + i;
textareaObj.style.cssText="width: 300px; height: 100px;";
divObj.appendChild(textareaObj);
document.body.appendChild(divObj);
tinyMCE.execCommand('mceAddControl', false, textareaObj.id);
}
editors = tinyMCE.editors.length;
for (var i=0;i<editors;i++)
{
tinyMCE.remove(tinyMCE.editors[0]);
}
答案 0 :(得分:0)
您在创建编辑器后立即调用remove函数。因此,您的编辑器实例尚未完全创建 - 这是您找不到任何实例的原因。 这里正确的方法是使用tinymce init config param onInit,当编辑器准备就绪时会调用它。