在AJAX插入后初始化TinyMCE编辑器/可视化编辑器

时间:2015-08-10 作者:Jack Arturo

我在自定义选项页面上有一个“repeater”样式的字段组。有一个处于隐藏状态的活动可视化编辑器,当用户单击“添加新内容”时,整行将被克隆。然后,我需要初始化克隆行中的可视化编辑器。我的代码:

$(\'.repeater-add-new\').click(function(event) {
    event.preventDefault();
    var target = $(this).data(\'repeater\');
    $( \'#\' + target).find(\'.repeater-row:not(.clone) .repeater-content.in\').collapse();
    var newRow = $( \'#\' + target + \' .repeater-row.clone\' ).clone().appendTo( \'#\' + target + \' .repeater-row-wrapper\' ).removeClass(\'clone\');
    rebuildIndex(target);

    // Initialize editors if needed
    newRow.find(\'.wp-editor-wrap\').each(function(index, el) {
        var ed_id = $(this).find(\'textarea\').attr(\'id\');

        tinymce.init(tinyMCEPreInit.mceInit[ed_id]);
        tinymce.execCommand(\'mceAddEditor\', false, ed_id); 
        quicktags({id : ed_id});
    });
});
界面截图:

Screenshot

当页面加载时,我得到控制台错误:

未捕获的TypeError:无法读取未定义的属性“onpageload”

当然,编辑器不起作用。在我保存页面后,它当然可以正常工作,但我需要它在添加行时也能正常工作。

1 个回复
SO网友:luukvhoudt

您是否设法在不包含javascript的情况下让编辑器正常工作?如果是这样,请尝试创建一个模板,其中包括一个工作的tinymce编辑器,然后使用WithDataAndEvents jQuery的参数clone() 函数设置为true。

例如:

$(\'.cloner\').click(function(){
  $(\'.container\').append($(\'.template\').clone(true).removeClass(\'hidden\'));
});

结束

相关推荐

嵌入和字数统计不适用于wp_EDITOR实例

使用wp_editor()函数创建编辑器时,我看不到标准字数,无法嵌入文件。在默认的帖子编辑器中,会显示字数,youtube URL会自动转换为嵌入内容。我在这里失踪了什么?使用以下代码添加了wp\\U编辑器:wp_editor( $data, \'welcome_text\', array( \'wpautop\' => false, \'textarea_name\' => \'welcome_text\' ) );