我知道之前已经问过这个问题,但是我试图通过附加到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",
..............
});
ID1
和ID2
是通过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');
}
});
});
答案 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');
}
});