Tinymce;从外部源加载style_formats,如link_list


Tinymce; Load style_formats from external source, like link_list

我想尝试从外部源加载样式格式,就像我对link_list所做的那样。遗憾的是,它对link_list的工作方式对style_formats不起作用。我尝试了多种解决方案,如下所示。我该怎么做?除了直接更改选项之外,似乎什么都不起作用。如果我粘贴我的响应,它就可以工作,所以我的语法是正确的。请,任何帮助或指示我应该去哪里都会很有帮助!以下是我尝试过的一些关于获取和处理响应的方法;

Directly paste link, exactly the same as for link_list
$.getJSON
var stylesFormats = JSON.stringify(jqXHR.responseText); 
var stylesFormats = JSON.stringify(data); 
var stylesFormats = data;
var stylesFormats = jqXHR.responseText; 
var stylesFormats = $.parseJSON(data); 
var stylesFormats = $.parseJSON(jqXHR.responseText); 
Ajax; No encoded response, no datatype
var stylesFormats = result; 
var stylesFormats = JSON.stringify(result); 
var stylesFormats = $.parseJSON(result); 
Ajax; No encoded response, script datatype
var stylesFormats = result; 
var stylesFormats = JSON.stringify(result); 
var stylesFormats = $.parseJSON(result); 
Ajax; json encoded response, script datatype
var stylesFormats = result; 
var stylesFormats = JSON.stringify(result); 
var stylesFormats = $.parseJSON(result); 
Ajax; json encoded response, html datatype
var stylesFormats = result; 
var stylesFormats = JSON.stringify(result); 
var stylesFormats = $.parseJSON(result); 
Ajax: header as javascript, no encoded response, no datatype
var stylesFormats = result; 
var stylesFormats = JSON.stringify(result); 
var stylesFormats = $.parseJSON(result); 

我也在tinymce论坛上做了一个话题,但在没有回应后,我想我在这里碰碰运气。tinymce帖子可以在这里找到。

tinymce不处理作为Promise的style_formats。最简单的方法是将tinymce.init调用放在getJSON的成功回调中。

$.getJSON(...url, data...
    ).done(function(style_formats) {
               tinymce.init({
                   style_formats: style_formats
                   ...other settings...
               });
           });

另一种选择是遍历所有编辑器并更新格式化程序和ui元素。。。

遗憾的是,这似乎不可能。让编辑器尊重新样式设置的唯一方法是在加载时重新创建它,这是非常低效的。它适用于link_list,因为加载时会重建该对话框,但style_settings仅在初始化时使用。唯一真正的选择是首先加载所有样式,然后初始化tinymce。