首页 > 解决方案 > TinyMCE 5:大写的自定义工具栏按钮

问题描述

我正在创建一个插件以将所有单词都大写。

const items = [
    {
      type: 'menuitem',
      text: 'uppercase',
      onAction: () => {
        const uppercaseContent = editor.dom
          .decode(editor.selection.getContent())
          .toUpperCase();

        editor.insertContent(uppercaseContent);
      },
    },
  ];

  callback(items);
},

我对这段代码有一些问题:

我在这段代码中遗漏了什么吗?

谢谢

标签: javascriptecmascript-6tinymce

解决方案


您是否丢失样式取决于您选择的内容。editor.insertContent将完全替换选择,内联样式可能会产生不希望的副作用。

您可能想要深入挖掘选择中的所有子文本节点并将那些. 然而,这也不容易,因为您的选择可能涵盖文本节点的一部分(这些复杂性是insertContent您要处理的事情)。

可靠地实现更改案例的开发过程非常复杂,我们决定为我们的解决方案收费: https ://apps.tiny.cloud/products/case-change/


推荐阅读