动态创建编辑器 - 浏览器是否需要退出该功能才能进行更改?

时间:2013-04-05 14:59:35

标签: javascript tinymce

我正在尝试动态创建和销毁像这样的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]);
    } 

1 个答案:

答案 0 :(得分:0)

您在创建编辑器后立即调用remove函数。因此,您的编辑器实例尚未完全创建 - 这是您找不到任何实例的原因。 这里正确的方法是使用tinymce init config param onInit,当编辑器准备就绪时会调用它。