通过AJAX为Wordpress加载tinyMCE中的文本


Loading text in tinyMCE for Wordpress via AJAX

我正在为Wordpress使用tinyMCE
通过AJAX从服务器加载文本的方式是什么
到目前为止,我有:

php:

<?php echo the_editor($_POST ? $_POST['content'] : '', $id = 'content'); ?>

javascript(正在失败…):

$("select[name='tpl']").live("change", function(e) {
    var file = $(this).val();
    var loadUrl = varsJs.WORDPRESS_PLUGIN_URL + "/templates/" + file;
    $.get(loadUrl, function(result) {
        $("#content").val(result);
    });
});

变量result加载了所需的文本。没问题。但是如何将这些内容传递给tinyMCE?

if (typeof tinymce === "object"){
    $("select[name='tpl']").live("change", function(e) {
        var file = $(this).val();
        var loadUrl = varsJs.WORDPRESS_PLUGIN_URL + "/templates/" + file;
        $.get(loadUrl, function(result) {
            tinymce.get("content").focus();
            tinymce.activeEditor.setContent(result);
        });
    });
}

注意:varsJswp_localize_script函数的第二个参数,用于将数据从php传递到javascript。在这个精确的问题上真的不需要,但知道它很有用。

试试这个代码,其中'content'是您的字段#ID

tinymce.init(tinyMCEPreInit.mceInit['content']);

这样,一旦tinymce也被加载到当前html中,您将只重新命名一个字段,即从Ajax请求中收到的字段。

在ajax保存之前也设置此代码调用

tinymce.activeEditor.save();//获取编辑器实例