3

我正在开发一些使用 tinyMCE 的 Web 应用程序。我使用 TinyMCE 3 的常规(非 jQuery 版本),但我使用 jQuery 从 textarea 添加和删除它。

textarea 本身首先由 div 中的 html 填充,然后添加 tinymce 控件。(后来该内容要么保存到数据库,要么被表单提交丢弃。

现在 - 这一切基本上都有效,但我遇到的问题是,一旦添加了 tinyMCE,然后删除了一次,它就会卡住,并且不会再次添加控件。

我用它来加载tinyMCE

$(".mcmsmdl_pagestatic_editpopup").on('click',function(){
            var smi = $(this).data('sectionmoduleindex');
            var content = $('#mcmsmdl_pagestatic_content_'+smi).html();
            $('#popup_module_pagestatic').data('sectionmoduleindex',smi);
            $('#mcmsmdl_pagestatic_content_textarea').val(content);
            tinyMCE.execCommand('mceAddControl', false, 'mcmsmdl_pagestatic_content_textarea');
            displayPopup('module_pagestatic',true);
        });

注意:displayPopup() 是一个函数,它只显示带有 tinyMce 的表单的容器。

tinyMce 在弹出窗口关闭时被删除:

$(".popup_shadow_module_pagestatic").on('click',function(event){
            event.preventDefault();
            tinyMCE.execCommand('mceFocus', false, 'mcmsmdl_pagestatic_content_textarea');
            tinyMCE.execCommand('mceRemoveControl', false, 'mcmsmdl_pagestatic_content_textarea');
            displayPopup('module_pagestatic',false);
        });

我检查了 - 它在第二个代码之后被卸载。任何想法为什么在再次调用相同的(第一个)代码时不会重新添加 tinyMCE 控件?

编辑: 使用控制台检查后:确实已正确加载和卸载,但第二次加载会产生“递归过多”错误。似乎在tinyMCE代码的某个地方它进入了一个无限循环......

EDIT2 正如 Thariama 建议的那样,我将代码更改为首先显示 textarea 然后添加控件,现在我得到了不同的错误:

在 tinymce.js 中:

类型错误:this.getDoc(...) 未定义

在 editor_plugin.js 中:

NS_ERROR_FAILURE:组件返回失败代码:0x80004005 (NS_ERROR_FAILURE)[nsIDOMNavigator.userAgent]

来自 edit2 的EDIT3 错误是因为页面已刷新,并且未加载干净。干净加载后,再次显示太多递归错误...

EDIT4 通过删除 iBrowser 插件似乎可以解决所有问题。- 现在我需要找到另一个免费的图片上传器...... :(

4

0 回答 0