单击“自定义格式”文本时,启用和禁用了来自MenuButton的TinyMCE 5+自定义MenuItem

时间:2019-03-16 07:54:19

标签: javascript tinymce-5

我将自定义菜单项添加到了插入自定义标签的菜单按钮。例如:2019年3月16日星期六

我希望menuitem按钮在位于时间标记内时禁用,因此无法在时间标记内添加时间标记。

我无法做到。这是我的代码:

  tinymce.init({
  selector: 'textarea',
  menubar: false,
  toolbar: 'bold| menuDateButton',
  setup: function (editor) {

    /* Helper functions */
    var toDateHtml = function (date) {
      return '<time datetime="' + date.toString() + '">' + date.toDateString() + '</time>';
    };

    editor.ui.registry.addMenuButton('menuDateButton', {
      text: 'Add Date',
      fetch: function (callback) {
        var items = [
          {
            type: 'menuitem',
            text: 'Insert Date',

            onAction: function (buttonApi) {

              console.log('Disabled?: '+buttonApi.isDisabled());
              console.log('Pre Insert');
              editor.insertContent(toDateHtml(new Date()));
              console.log('Post Insert');


            },
            onSetup: function (buttonApi) {
              var editorEventCallback = function (eventApi) {
                buttonApi.setDisabled(eventApi.element.nodeName.toLowerCase() === 'time');                
                console.log('Disabled (Nodechange)?: ' + buttonApi.isDisabled());

              };
              editor.on('NodeChange', editorEventCallback);
              return function (buttonApi) {
                editor.off('NodeChange', editorEventCallback);
              }
            }
          }          
        ];
        callback(items);
      }
    });
  }
});

笔:https://codepen.io/aldoherrera/pen/KERpYW

0 个答案:

没有答案