将自定义类添加到wysihtml5文本编辑器

时间:2012-12-13 22:25:43

标签: javascript html5 wysiwyg wysihtml5

我希望能够添加一个添加我自己的自定义类的按钮。我在文档中没有看到这个,但似乎是一个常见的请求。

例如。

突出显示“Some Text”并按“Custom Class”按钮将添加

<p class="wysiwyg-custom-class">Some Text</p&GT;

1 个答案:

答案 0 :(得分:5)

定义新命令,我的示例基于ForeColor

(function(wysihtml5) {
    
  wysihtml5.commands.setClass = {
    exec: function(composer, command, element_class) {
        element_class=element_class.split(/:/);
        element=element_class[0];
        newclass=element_class[1];
      var REG_EXP = new RegExp(newclass,'g');
    //register custom class
      wysihtml5ParserRules['classes'][newclass]=1;

      return wysihtml5.commands.formatInline.exec(composer, command, element, newclass, REG_EXP);
    },

    state: function(composer, command, element_class) {
        element_class=element_class.split(/:/);
        element=element_class[0];
        newclass=element_class[1];
        var REG_EXP = new RegExp(newclass,'g');
      return wysihtml5.commands.formatInline.state(composer, command, element, newclass, REG_EXP);
    }
  };
})(wysihtml5);

用法:

HTML:

<div id="uxToolbar">
   <button data-wysihtml5-command="setClass" data-wysihtml5-command-value="span:my-wysihtml5-custom-class" type="button" title="View HTML" tabindex="-1" class="btn btn-mini">
       My class
   </button>
</div>

因此您可以看到价值来自两个部分:element:class

DEMO