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
...?
ありがとう!