解决方法
其实这就是解析器规则.
在实例化编辑器对象之前,您可以将自定义规则附加到所包含的var wysihtml5ParserRules中,或者只是创建自己的规则对象并给出编辑器的构造函数.
例如,为了允许h1和h3标签除了分布式简单示例规则中允许的标签之外,您需要设置如下:
<form> <div id="toolbar" style="display: none;"> <a data-wysihtml5-command="bold" title="CTRL+B">bold</a> | <a data-wysihtml5-command="italic" title="CTRL+I">italic</a> <a data-wysihtml5-action="change_view">switch to html view</a> </div> <textarea id="textarea" placeholder="Enter text ..."></textarea> <br><input type="reset" value="Reset form!"> </form> <!-- The distributed parser rules --> <script src="../parser_rules/simple.js"></script> <script src="../dist/wysihtml5-0.4.0pre.min.js"></script> <script> // attach some custom rules wysihtml5ParserRules.tags.h1 = {remove: 0}; wysihtml5ParserRules.tags.h3 = {remove: 0}; var editor = new wysihtml5.Editor("textarea",{ toolbar: "toolbar",parserRules: wysihtml5ParserRules,useLineBreaks: false }); </script>
现在,当您输入/粘贴< title> test< / title>在编辑器中,当您处于编辑器模式时,然后切换到html视图,您将获得& lt; title& gt; test& lt; / title& gt.当您切换回编辑器视图时,您将获得< title> test< / title>再次.
这是一般的部分.
现在,在你的情况下,我不知道使用121个自定义解析器规则(要处理的HTML标签的数量)是最好的办法,或者如果不是更好地花时间挖掘源代码找到一个更具性能的解决方案(告诉一个解析器实际上只是返回输入字符串,没错,是吗?)此外,你说你也想允许CSS.所以你的自定义解析器规则甚至会扩展.
无论如何,作为起点,请随时使用我的自定义解析器规则集:https://github.com/eyecatchup/wysihtml5/blob/master/parser_rules/allow-all-html5.js.