📜  tinymce 添加 tbale 按钮 - Javascript (1)

📅  最后修改于: 2023-12-03 15:35:20.265000             🧑  作者: Mango

在TinyMCE中添加table按钮

如果你正在使用TinyMCE作为你的富文本编辑器,你很可能需要添加一个table按钮来方便用户插入表格。这篇文章会告诉你如何使用Javascript添加这个按钮。

前提条件

在开始之前,你需要确保你已经按照官方指南安装了TinyMCE。如果你还没有安装它,请先查看TinyMCE官方文档

添加table按钮

为了添加一个table按钮,我们需要创建一个TinyMCE插件。在这个插件中,我们将定义一个按钮,当用户点击这个按钮时会插入一个包含表格的HTML代码。

tinymce.PluginManager.add('table', function(editor, url) {
  // 创建一个新的按钮
  editor.addButton('table', {
    text: '插入表格',
    icon: false,
    onclick: function() {
      // 打开一个弹窗让用户选择表格的大小
      // 然后插入相应的HTML代码
      var tableSize = prompt('请输入表格大小(如:3x3):');
      if (tableSize) {
        var html = '<table>';
        for (var i = 0; i < tableSize.split('x')[0]; i++) {
          html += '<tr>';
          for (var j = 0; j < tableSize.split('x')[1]; j++) {
            html += '<td></td>';
          }
          html += '</tr>';
        }
        html += '</table>';
        editor.insertContent(html);
      }
    }
  });
});

在上面的代码中,我们先使用tinymce.PluginManager.add方法来创建一个名为table的新的插件。这个方法会返回一个函数,我们可以使用这个函数来定义我们的table按钮。

在这个函数中,我们使用editor.addButton方法来创建一个新的按钮。这个方法接受一个名字和一个对象作为参数,我们在这个对象中定义了按钮的显示文本、图标和点击事件。

在点击事件中,我们打开了一个弹窗来让用户选择表格的大小。然后我们根据用户选择的大小生成相应的HTML代码,并使用editor.insertContent方法将这个代码插入到编辑器中。

使用table按钮

现在我们已经成功地添加了一个table按钮,可以使用它来插入表格了。当用户点击这个按钮时,会弹出一个提示框,要求用户输入表格的大小,如下图所示:

table-popup

用户输入完表格大小后,会自动生成对应大小的表格,并插入到编辑器中,如下图所示:

table-insertion

Markdown格式输出

如果你想在客户端将这个HTML代码转换为Markdown格式,你可以使用一些现成的库,比如html-to-markdown。你可以在你的服务器上安装这个库,然后在客户端调用它来将HTML代码转换为Markdown格式。

var htmlToMarkdown = require('html-to-markdown');
var markdown = htmlToMarkdown.convert('<table><tr><td></td><td></td></tr><tr><td></td><td></td></tr></table>');
console.log(markdown);

这个代码会输出如下内容:

|       |       |
| ----- | ----- |
|       |       |
|       |       |

这就是我们成功将HTML代码转换为Markdown格式的结果了!