1

我正在尝试像这样动态创建和销毁 TinyMCE 编辑器。1) 看来,如果我在创建后放置断点并检查 tinymce 编辑器,即在第一个 for 循环之后 - 我在浏览器中看不到它们 2) 我在控制台的 tinymce.editors 中也看不到它们

因此我的破坏不起作用。然而,在这一切之后,我可以看到编辑。因为第二个 for 循环不会被执行。

问题主要是,是否有类似功能必须退出然后浏览器进行 DOM 更改的东西?如果是这样我应该睡觉吗?我从 什么是 sleep() 的 JavaScript 版本中得到了这个想法?即浏览器在函数存在或类似的东西后进行 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]);
    } 
4

1 回答 1

0

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

于 2013-04-09T12:49:19.850 回答