tinymce自定义插件开发

文章详细记录了在升级Tinymce到5.x版本后,如何解决原有插件不兼容的问题并开发新的自定义占位符功能。通过创建按钮,弹出对话框让用户输入空格数,然后插入编辑器中,实现了自定义占位符的插入功能。
摘要由CSDN通过智能技术生成

前言

由于近期需要使用tinymce数学公式的插件,把tinymce的版本从4.x升级到了5.x导致之前写的插件在5.x的版本中不兼容。在这里针对5.x版本开发过程做一次记录。

准备工作

需要先把tinymce包下载下来,把需要开发的插件文件放到plugins文件夹中。

自定义占位符

先创建一个按钮,点击按钮弹出对话框,输入想要的空格数。

tinymce.PluginManager.add('yxnewformat', function (editor, url) {
  // 点击事件
  editor.on('dblclick', function () {
    var sel = editor.selection.getContent();
    var path = /\<img(.*?)src="data:image\/png;base64,[A-Za-z0-9+/=]*"(.*?)data-latex="(.*?)" \/>/g;
    var path2 = /data-latex="(.*?)"/g;

    if (sel.search(path) == 0) {
      sel.replace(path2, function ($0, $1) {
        var param = encodeURIComponent($1);
        // openDialog(param);
        console.log('点击空格');
        return $0;
      });
    }
  });
  // 弹出层
  var openDialog = function (param) {
    return editor.windowManager.open({
      title: '请输入需要的空格个数',
      width: 785,
      height: 475,
      body: {
        type: 'panel',
        size: 1,
        items: [
          {
            type: 'input',
            name: 'nums',
            label: '个',
          },
        ],
      },
      buttons: [
        {
          type: 'cancel',
          text: 'Close',
        },
        {
          type: 'submit',
          text: 'Save',
          primary: true,
        },
      ],
      onSubmit: function (api) {
        var data = api.getData();
        // Insert content when the window form is submitted
        console.log('选择:' + data);
        // console.log('空格数: ' + data.nums);
        const num = '&nbsp;'.repeat(Number(data.nums));
        console.log('num', num);
        const e = `<span class="pl mceNonEditable"><b>${num}</b></span>`;
        editor.insertContent(e);
        // editor.insertContent('空格数: ' + e);
        api.close();
      },
    });
  };

  // 占位符
  editor.ui.registry.addButton('yxnewformat', {
    text: '[ ]',
    tooltip: '插入占位符',
    onAction: function () {
      openDialog();
      // openDialog1();
      console.log('addButton点击空格');
    },
  });
  editor.ui.registry.addMenuItem('yxnewformat', {
    text: '空格',
    onAction: function () {
      openDialog();
      console.log('addMenuItem点击空格');
    },
  });

  return {
    getMetadata: function () {
      return {
        name: '空格',
        url: 'http://hgcserver.gitee.io',
      };
    },
  };
});

要使用此插件,请将上面的代码添加到 TinyMCE 的配置选项中。例如:

tinymce.init({
  plugins: 'yxnewformat',
  toolbar: 'yxnewformat'
});

在这里插入图片描述配置完成之后就可以看到,这个地方多个一个小工具。点击弹出对话框。
在这里插入图片描述
输入你需要的空格数,点击保存。
在这里插入图片描述空格数已经展出出来了。
到这一步,自定义插件已经完成了。

总结

由于这个插件国内的文档比较少,在开发的过程中找不到合适的案例,只能自己一点点的摸索。api文档地址

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
tinymce自定义插件可以通过以下步骤来实现: 1. 首先,你需要将插件的代码添加到tinymce的配置选项中。你可以使用`global.add()`方法将插件注册到tinymce.PluginManager对象中。例如,你可以在配置选项中添加以下代码: ``` tinymce.init({ plugins: 'yourCustomPlugin', toolbar: 'yourCustomPlugin' }); ``` 2. 接下来,你需要创建插件的代码。你可以使用`editor.addCommand()`方法注册命令,使用`editor.addButton()`方法注册按钮,使用`editor.addMenuItem()`方法注册菜单栏。你可以在插件的代码中使用这些方法来定义插件的功能和行为。 3. 最后,你需要将插件的代码添加到tinymce.PluginManager对象中。你可以使用`global.add()`方法将插件注册到PluginManager对象中。例如,你可以在全局作用域中添加以下代码: ``` global.add('yourCustomPlugin', function (editor) { // 在这里定义插件的功能和行为 }); ``` 通过以上步骤,你就可以自定义插件并将其添加到tinymce中了。记得在配置选项中指定插件的名称,并在插件的代码中定义插件的功能和行为。 #### 引用[.reference_title] - *1* *2* [TinyMCE 富文本编辑器 ━━ 自定义插件 [转载]](https://blog.csdn.net/snans/article/details/100862639)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [tinymce自定义插件开发](https://blog.csdn.net/weixin_46613448/article/details/131200664)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟很沉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值