微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

tinymce v5中的onNodeChange吗?

如何解决tinymce v5中的onNodeChange吗?

我在tinymce(https://moodle.org/plugins/tinymce_glatex)中添加一个外部插件

我这样将其添加到tinymce.init中

plugins: ['glatex'],toolbar: ' glatex',external_plugins: {
  'glatex': '/images/glatex/tinymce/editor_plugin.js'
},

但是控制台出现错误

Failed to initialize plugin: glatex TypeError: Cannot read property 'add' of undefined
    at t.<computed>.t.<computed>.init (editor_plugin.js:48)
    at cN (tinymce.min.js:2)
    at Array.<anonymous> (tinymce.min.js:2)
    at Object.ge [as each] (tinymce.min.js:2)
    at pN (tinymce.min.js:2)
    at EE.<anonymous> (tinymce.min.js:2)
    at Array.<anonymous> (tinymce.min.js:2)
    at ge (tinymce.min.js:2)
    at u (tinymce.min.js:2)
    at tinymce.min.js:2
    
theme.min.js:2 Uncaught Error: Errors: 
Failed path: (toolbarbutton)
Could not find valid *strict* value for "onAction" in {
  "title": "LaTeX Plugin","cmd": "LatexPlugin","image": "/images/glatex/tinymce/img/latex.png","type": "button"
}

Input object: {
  "title": "LaTeX Plugin","type": "button"
}
    at theme.min.js:2
    at Object.getorDie (theme.min.js:2)
    at theme.min.js:2
    at theme.min.js:2
    at Object.fold (theme.min.js:2)
    at theme.min.js:2
    at Object.fold (theme.min.js:2)
    at qE (theme.min.js:2)
    at theme.min.js:2
    at V (theme.min.js:2)
    

这是glatex中editor_plugin.js的代码

(function () {

        tinymce.create('tinymce.plugins.LatexPlugin',{

          
    init: function (ed,url) {
      ed.addCommand('LatexPlugin',function () {
          ed.windowManager.open({
              file: ed.getParam("moodle_plugin_base") + 'glatex/glatex.PHP',width: 640 + parseInt(ed.getLang('latex.delta_width',0)),height: 480 + parseInt(ed.getLang('latex.delta_height',inline: 1
          },{
              plugin_url: url
          });
      });

      // Register button
      ed.ui.registry.addButton('glatex',{
          title: 'LaTeX Plugin',cmd: 'LatexPlugin',image: url + '/img/latex.png'
      });

      // Node change events
      ed.onNodeChange.add(function (ed,cm,n) {
          cm.setActive('glatex',n.nodeName == 'IMG');
      });

    },getInfo: function () {
        return {
            longname: 'Latex plugin',author: 'Diego Caponera',authorurl: 'http://www.diegocaponera.com',infourl: 'http://www.diegocaponera.com',version: "1.0"
        };
    }
    });

// Register plugin
       tinymce.PluginManager.add('glatex',tinymce.plugins.LatexPlugin)
})();

有人知道这个错误吗?我一直在搜索它,但是没有找到解决方法

解决方法

您所引用的插件似乎是在TinyMCE 5发行之前编写的,因此它很可能使用TinyMCE 4的API。

要使该插件与TinyMCE 5配合使用,需要对其进行更新以与TinyMCE 5的API配合使用。

此处提供了有关从TinyMCE 4迁移到5的文档:https://www.tiny.cloud/docs/migration-from-4x

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。