我正在尝试修改 TinyMCE 4“链接”插件,以允许用户从由 AJAX 请求动态更新的 ListBox 元素中选择内容。
我在 editor.windowManager.open() 之前创建了 ListBox 元素,因此它们最初被正确渲染。我有一个执行 AJAX 请求并获得 JSON 格式响应的 onselect 处理程序。
我需要对 JSON 响应做的是让它更新另一个 ListBox 元素,用新结果替换现有项目。
我很困惑,文档非常不清楚。我不知道是否应该替换整个控件,或者删除项目然后添加新项目。我不知道是否需要实例化一个新的 ListBox 控件,或者将其渲染为 HTML 等。
基本上,我可以访问原始呈现的 ListBox(名称:“模块”}
win.find('#module');
我有来自 AJAX 请求的新值:
var data = tinymce.util.JSON.parse(text).data;
我已经尝试创建一个新的 Control 配置对象,比如
newCtrlconfig = {
type: 'listbox',
label: 'Class',
values: data
};
但我不知道如何渲染它,更不用说替换现有的了。
我试过了
var newList = tinymce.ui.Factory.create(newCtrlconfig);
接着
newList.renderHtml()
但即便如此,呈现的 HTML 也不包含项目的任何标记。检查这些对象只是令人沮丧:有“设置”、“值”、“_values”、“项目”,所有这些都可以愉快地存储我的值,但甚至不清楚它们中的哪一个会起作用。
因为它是一个 ListBox 而不是一个简单的 SELECT 菜单,所以我什至不能轻松地使用 DOM 来操作这些值。
有没有人在 4.x 中征服了 TinyMCE 列表框?