TinyMCE的;从外部源加载style_formats,例如link_list

时间:2014-04-08 07:24:23

标签: php jquery ajax json tinymce-4

我想尝试从外部源加载样式格式,就像我为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帖子here

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

tinymce不会将style_formats视为Promise。 解决这个问题的最简单方法是将tinymce.init调用放入getJSON的成功回调中。

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

替代方案是走所有编辑器并更新格式化程序和ui元素......