TinyMCE - 附加到通过AJAX调用加载的div

时间:2013-06-07 15:28:49

标签: jquery tinymce

我知道之前已经问过这个问题,但是我试图通过附加到tinymce实例的jQuery(AJAX)来加载一些div。

在AJAX加载的页面中,有几个由PHP循环创建的tinymce div;

<div id="editable_ID1"><p>Some text</p></div>
<div id="editable_ID2"><p>Some more text</p></div>

tinymce.init({
        selector: "#editable_ID1",
..............
});

tinymce.init({
        selector: "#editable_ID2",

..............
});

ID1ID2是通过PHP循环从数据库中动态获取的。

我的问题是,我似乎无法加载tinymce并将其附加到这些div元素。

我见过:

tinyMCE.execCommand('mceAddControl', true, 'id');

但是,这似乎并没有将元素附加到元素上

感谢

jQuery(document).ready(function(){

var child = jQuery(this).attr('data-id');

 $.ajax({  
  type: "POST",                                    
  url: '<?php echo url_for('@load_template_from_nav') ?>',
  data: "template_id="+child,                        

  success: function(data)          
  {
    // replace ajax page content
    $('.template-editor-item-replace').html(data);
    tinyMCE.execCommand('mceAddControl', true, 'editable_1');

  } 

 });

});

2 个答案:

答案 0 :(得分:2)

您需要彻底调用id。使用

tinyMCE.execCommand('mceAddControl', true, 'editable_ID1'); // additionaly editable_ID2

答案 1 :(得分:1)

当处理替换tinymce元素的ajax时,你需要首先删除控件然后再添加它

$.ajax({  
  type: "POST",                                    
  url: '<?php echo url_for('@load_template_from_nav') ?>',
  data: "template_id="+child,                        
  beforeSend: function(){
    tinymce.execCommand('mceRemoveControl', false, 'editable_1)
  },
  success: function(data)          
  {
    // replace ajax page content
    $('.template-editor-item-replace').html(data);
  },
  complete: function() {
     tinyMCE.execCommand('mceAddControl', true, 'editable_1');
  }
});

在tinymce v.4中

$.ajax({  
  type: "POST",                                    
  url: '<?php echo url_for('@load_template_from_nav') ?>',
  data: "template_id="+child,                        
  beforeSend: function(){
    tinymce.remove('#editable_1');
  },
  success: function(data)          
  {
    // replace ajax page content
    $('.template-editor-item-replace').html(data);
  },
  complete: function() {
     tinymce.add('#editable_1');
  }
});