2013-02-20 6 views
6

だから私はこの苦境を抱えています。複数のAJAXリフレッシュとTinyMCEに問題がある

<SCRIPT src="../js/tiny_mce/tiny_mce.js"></script> 
<SCRIPT type="text/javascript"> 
    tinyMCE.init({ 
     mode : "textareas", 
     theme : "simple" 
    }); 
</SCRIPT> 
<SCRIPT src="../js/admin.js"></script> 

上記は私のPHPページで呼び出されています。私はその後、

これはテキストエリアの束をロード
var request = $.ajax(
{ 
    url:"getEvents.php", 
    type:"POST", 
    data:{'method':'showevents'}, 
    dataType:"html" 
    }).done(function(msg){ 
     $('#eventlistbody').html(msg); 
    }); 

    setTimeout(
     function(){ 
      $(".mceSimple").each(function(){ 
       tinyMCE.execCommand("mceAddControl",false, this.id); 
      }) 
    },2000); 

を呼んでいる

..... TinyMCEのは、すべてのテキスト領域に、それはreturns..when私はリロードをクリックして最初の時間をロードします上記を再度実行し、tinyMCEが付加されていないテキスト領域を返します。 なぜそれが最初の時間ではなく、それ以降の時間ではないのか分かりません。

答えて

12

リロードした後にtinymceエディターを再初期化できるようにするには、リロードする前にtinymceを正しくシャットダウンする必要があります。これは、tinymceがdomの周りにドラッグされたくないので必要です。また、初期化されたエディタインスタンスには1つの一意のIDがあります(reloadを使用すると、同じidの2番目のエディタをinitliazeしようとすると失敗します)。

Tinymce3: edtorインスタンスの使用を停止するには:

tinymce.execCommand('mceRemoveControl',true, editor_id); 

tinymce.execCommand('mceAddControl',true, editor_id); 

使用を再初期化するTinymce4: edtorインスタンスの使用を停止するには:

​​私にとって

使用を再初期化する

tinymce.execCommand('mceAddEditor',true,editor_id); 
+1

昨日の午前3時に発見した情報に感謝し、応答を投稿する時間がありませんでした。素晴らしい情報。 – BostonMacOSX

+0

私はこれを成功させようとしました。これに何か更新がありますか? – dpDesignz

+1

@dpDesignz:このソリューションはtinymce3のみで動作し、tinymce4に適用できるようにするには、mceRemoveControlをmceRemoveEditorに、mceAddControlをmceAddEditorに置き換える必要があります。私の更新された答えを参照してください – Thariama

2

tinyMCE.remove(editor_id)が働いていました。

0

Tinymce4:edtorインスタンスの使用を停止するには:

tinymce.remove(); 

又は

tinymce.init(conftinymce); 

又は1を示す使用を再初期化する

​​

つの固有のIDを示します一意のID

tinymce.execCommand('mceAddEditor',true,editor_id); 
関連する問題