web-dev-qa-db-ja.com

4.xでajaxが読み込まれたテキストエリアでTinyMCEを初期化するにはどうすればよいですか?

TinyMCE 4.xにアップグレードし、AJAX経由で読み込まれたテキストエリアでtinyMCEを初期化しようとしています。 3.xで私は次のようなことをしました: TinyMCE-AJAX calls を介して読み込まれたdivにアタッチしますが、これは4.xで動作します。

16
Mike Dotterer
tinymce.remove();
tinymce.init();

これはうまくいきます!

TinyMCE4.xmceRemoveControlおよびmceAddControl削除されました。代わりにmceRemoveEditormceAddEditorを使用する必要があります。

それを手に入れました: [解決済み] mceRemoveControlおよびmceAddControl in tinymce 4

それ以外の場合は、tinymce.init({...})を再ロードできますが、速度が低下するため、この方法は望ましくありません。

11
Eduardo Casas

次のコードを使用してtextareaをインクルードした後、TinyMCEをロードできます。

//initialize tinyMCE in page
tinymce.init({selector:'textarea'});
6
Jamshid Hashimi

ちょうど同じ問題に遭遇したときだけです。

Initスクリプトをこのような関数にラップすることで問題を解決しました。

私のinit.jsファイル

initializeTinyMce();
function initializeTinyMce(selector){
  if(selector == undefined){selector = 'textarea';}
  ...
  tinymce.init({
    selector: selector,
    ...
  });
}

ajaxリクエストの結果に追加します

<script type="text/javascript">
  $(document).ready(function(){
    initMCE('textarea#someId');
  });
</script>

私にとってはうまくいきます

1
user1469027

tinymce.init({selector: 'textarea'});

これをajaxで使用し、値を選択できない場合は、フォームを送信する前に、

tinyMCE.triggerSave();

0
suraj