【问题标题】:Why does this TinyMCE AJAX integration work 9/10 times?为什么这个 TinyMCE AJAX 集成能工作 9/10 次?
【发布时间】:2015-08-25 21:40:06
【问题描述】:

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

实际上,在页面加载时,一个 jQuery AJAX 调用会到达一个 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。

如果有人需要更多信息,我很乐意提供帮助。

【问题讨论】:

  • 尝试使用 tinyMce 的 setData() 方法以相反的方式进行操作。我不像其他编辑器那样熟悉 tinyMce API,因此函数名称可能不正确,您可能还需要针对特定​​实例

标签: javascript jquery ajax tinymce


【解决方案1】:

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

【讨论】:

  • 好吧,尽管我很欣赏输入 - .val 调用 90% 的时间都有效,通过 DOM .value 属性设置它也是如此。今天我将尝试通过编辑器的 setContent 方法进行设置,我会回来报告。作为记录,我正在对 jQuery .ready 回调进行 AJAX 调用,据我所知,它在 tinyMCE.init 100% 的时间之后被调用。在正确设置内容之前,我必须弄清楚为什么我的 tinyMCE.activeEditor 变量没有设置,但希望这会很容易。
  • 好吧,一旦我发现我是个笨蛋,找到我的 tinyMCE 实例就很容易了。查看。在弄清楚这一点之后,我进行了 tinyMCE.get() == null 检查,如果它为 null,我将超时设置回我的 AJAX 方法。解决。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-17
  • 1970-01-01
相关资源
最近更新 更多