tinyMCE を使用する Web アプリケーションに取り組んでいます。TinyMCE 3 の通常の (非 jQuery バージョン) を使用していますが、jQuery を使用してテキストエリアに追加および削除します。
textarea 自体は、最初に div から html によって取り込まれ、次に tinymce コントロールが追加されます。(後で、そのコンテンツはデータベースに保存されるか、フォーム送信によって破棄されます。
さて、これはすべて基本的に機能しますが、tinyMCE が追加されてから削除されると、スタックしてしまい、2 回目にコントロールを追加できないという問題があります。
これを使用して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);
});
私はチェックしました-そして、それは2番目のコードの後にアンロードされます. 同じ(最初の)コードを再度呼び出すときに、tinyMCE コントロールを再追加しないのはなぜですか?
編集: コンソールで確認した後:実際には正しくロードおよびアンロードされていますが、2回目のロードで「再帰が多すぎます」というエラーが発生します。tinyMCE コードのどこかで無限ループに陥っているようです...
EDIT2 Thariama が示唆したように、最初にテキストエリアを表示してからコントロールを追加するようにコードを変更したところ、さまざまなエラーが発生しました。
tinymce.js で:
TypeError: this.getDoc(...) は未定義です
editor_plugin.js で:
NS_ERROR_FAILURE: コンポーネントがエラー コードを返しました: 0x80004005 (NS_ERROR_FAILURE)[nsIDOMNavigator.userAgent]
EDIT3 edit2 からのエラーは、ページが更新され、クリーンにロードされなかったためです。クリーンにロードすると、Too Much Recursion エラーが再び表示されます...
EDIT4 iBrowser プラグインを削除することで、すべての問題が解決したようです。- 今、私は別の無料の画像アップローダーを見つける必要があります... :(