Javascript 为什么TinyMCE AJAX集成可以工作9/10次?

Javascript 为什么TinyMCE AJAX集成可以工作9/10次?,javascript,jquery,ajax,tinymce,Javascript,Jquery,Ajax,Tinymce,我有一个TinyMCE实现,大约80-90%的时间都能工作,但对于最后一个百分比,编辑器的内容无法填充-因为缺少更好的措辞 实际上,在页面加载时,jqueryajax调用会到达从我的数据库中获取一些内容的PHP页面。检索时,我将TinyMCE实例的值设置为响应的内容。我已经对此进行了几轮讨论,首先是一个自定义AJAX构建,最近是一个jQuery构建。在这两种情况下,我得到的结果都差不多——编辑器加载,内容从服务器返回,每隔一段时间,文本区域就会变成空白 最新的尝试比之前的尝试要短得多,但无论如何

我有一个TinyMCE实现,大约80-90%的时间都能工作,但对于最后一个百分比,编辑器的内容无法填充-因为缺少更好的措辞

实际上,在页面加载时,jqueryajax调用会到达从我的数据库中获取一些内容的PHP页面。检索时,我将TinyMCE实例的值设置为响应的内容。我已经对此进行了几轮讨论,首先是一个自定义AJAX构建,最近是一个jQuery构建。在这两种情况下,我得到的结果都差不多——编辑器加载,内容从服务器返回,每隔一段时间,文本区域就会变成空白

最新的尝试比之前的尝试要短得多,但无论如何,我最终还是得到了同样的结果。我还尝试在加载内容后重新绘制TinyMCE实例,但没有效果

即使在发生故障的情况下,两个控制台日志的结果都是相同的——以及来自我的服务器的预期响应。因此,正在设置值,但内容不可见

function LoadAgenda()
{
    $.ajax(
    {       
        url: 'http://www.example.com/agenda.php?AgencyID=' + AgencyID + '&date=' + AgendaDate,
        cache: false,
        dataType: 'html'
    })
    .done(function(Response)
    {
        console.log(Response);

        $('#AgendaContent').val(Response);

        tinyMCE.execCommand("mceRepaint");

        console.log($('#AgendaContent').val());
    });
}
最后,为了记录在案,我使用TinyMCE 4.1.6


如果有人需要更多的信息,我很乐意效劳。

首先会发生什么?编辑器正在加载还是ajax调用正在完成?如果您的ajax调用是在加载编辑器之后进行的,我认为.val()不起作用,因为在TinyMCE初始化它之后,它不再是一个简单的文本区域。试试这个:

  • 只进行ajax调用
  • 将.val()更改为

    • 首先发生什么?编辑器正在加载还是ajax调用正在完成?如果您的ajax调用是在加载编辑器之后进行的,我认为.val()不起作用,因为在TinyMCE初始化它之后,它不再是一个简单的文本区域。试试这个:

      • 只进行ajax调用
      • 将.val()更改为

      尝试使用tinyMce的
      setData()
      方法以相反的方式进行操作。我对tinyMce API不像对其他编辑器那样熟悉,因此函数名可能不正确,您可能还需要以特定实例为目标,并尝试使用tinyMce的
      setData()
      方法以相反的方式进行操作。我对tinyMce API不像对其他编辑器那样熟悉,因此函数名可能不正确,您可能还需要针对特定实例,正如我对输入的理解一样,-.val调用在90%的时间内都有效,通过DOM.value属性设置它也是如此。今天我将尝试通过editors setContent方法进行设置,我将向您汇报。作为记录,我在jQuery.ready回调上进行AJAX调用,据我所知,在tinyMCE.init之后100%的时间都会调用该回调。在我可以正确设置内容之前,我必须弄清楚为什么我的tinyMCE.activeEditor变量没有被设置,但希望这足够简单。好吧,一旦我发现我是个笨蛋,找到我的tinyMCE实例就足够简单了。检查。在弄清楚这一点之后,我加入了一个tinyMCE.get()==null检查,如果它为null,我将超时设置回我的AJAX方法。断然的。感谢您的帮助。我非常感谢您的输入,.val调用在90%的时间内都能正常工作,通过DOM.value属性进行设置也是如此。今天我将尝试通过editors setContent方法进行设置,我将向您汇报。作为记录,我在jQuery.ready回调上进行AJAX调用,据我所知,在tinyMCE.init之后100%的时间都会调用该回调。在我可以正确设置内容之前,我必须弄清楚为什么我的tinyMCE.activeEditor变量没有被设置,但希望这足够简单。好吧,一旦我发现我是个笨蛋,找到我的tinyMCE实例就足够简单了。检查。在弄清楚这一点之后,我加入了一个tinyMCE.get()==null检查,如果它为null,我将超时设置回我的AJAX方法。断然的。谢谢你的帮助。