我的 tinyMCE 编辑器中有一个自定义菜单按钮,它使用页面上其他地方的特定 HTML 元素作为菜单项。我使用 jQuery 选择器获取元素列表,然后将每个元素添加为菜单项:
c.onRenderMenu.add(function(c,m) {
m.add({ title: 'Pick One:', 'class': 'mceMenuItemTitle' }).setDisabled(1);
$('span[data-menuitem]').each(function() {
var val = $(this).html();
m.add({
title: $(this).attr("data-menuitem"),
onclick: function () { tinyMCE.activeEditor.execCommand('mceInsertContent', false, val) }
});
});
});
我的问题是,这仅在首次单击按钮并首次呈现菜单时发生一次。当前页面上的 HTML 元素会根据用户点击和一些 AJAX 偶尔更改,因此我需要在每次呈现菜单时运行此选择器代码,以确保菜单完全是最新的。那可能吗?
如果做不到这一点,是否可以从页面中其他地方的 AJAX 调用结束时动态更新控件?我不确定如何访问菜单项并对其进行更新。使用tinyMCE.activeEditor.controlManager
...的东西?
谢谢!