3

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 プラグインを削除することで、すべての問題が解決したようです。- 今、私は別の無料の画像アップローダーを見つける必要があります... :(

4

0 に答える 0