wp_editor()在用ajax加载的内容中

时间:2014-06-20 12:19:25

标签: ajax wordpress tinymce editor

我尝试在使用ajax加载的内容中使用wp_editor(),但没有加载任何所需文件和其他配置脚本:

ajax的结构是这样的:

function get_test_page(){
   include( TEMPLATEPATH . '/page.php' );
   die( main() );
}
add_action( 'wp_ajax_nopriv_get_test_page', 'get_test_page' );
add_action( 'wp_ajax_get_test_page', 'get_test_page' );

page.php:

function main(){
    wp_editor('','unique_id');
}

已加载编辑器,但未加载所需文件。

  • http://.../wp-includes/js/tinymce/wp-tinymce.php

  • http://.../wp-includes/js/tinymce/skins/lightgray/skin.min.css

  • http://.../wp-admin/load-scripts.php?c=1&load%5B%5D=...mce-view,imgareaselect,image-edit,word-count,editor,quicktags,wplink,thick..

  • http://.../wp-includes/js/tinymce/langs/{}.js

  • ...

一些相关的帖子但对我没有帮助:

use wordpress wp_editor in dynamic/ajax html

How to load wp_editor() through AJAX/jQuery

1 个答案:

答案 0 :(得分:2)

<强>解决方案

在完美无缺的地方添加wp_editor()并隐藏它。

<div class="hidden-editor-container" style="display:none;">
    <?php wp_editor( '', 'editor' ); ?>
</div>

之后将编辑器内容分配给全局JS变量。

EDITOR = $('.hidden-editor-container').contents();

最后加载ajax页面时附加编辑内容

$('.editor').append( EDITOR );

tinymce.execCommand( 'mceRemoveEditor', false, 'editor' );
tinymce.execCommand( 'mceAddEditor', false, 'editor' );