我正在开发一些使用 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 插件似乎可以解决所有问题。- 现在我需要找到另一个免费的图片上传器...... :(