过去我一直用ckEditor,百度这两年的百度编辑器比较好用!算是比较成功的产品,最重要的一点就是所有的使用文档都是中文的,按照文档一步一步做完全可以实现任何编辑器的大部分功能,我在做公司ERP自定义工作流表单的时候惊喜的发现,在动态向富文本编辑器中写入input控件的时候,效果要好于ckEditor~!从word中直接复制已经布局好的表格到编辑器中的效果也要好于ckEditor!强烈建议你尝试下这个东东。不过也有一个问题,有个别bug竟然和ckeditor是一样的,不知道是借鉴了代码还是浏览器的问题。比如在富文本编辑器中插入input控件后的一些 *** 作。不过这个不开发自定义表单通常是用不到这一点的。
因为最近有个需求,在从后台定时获取数据后展示,可以加粗和改变字体颜色,并且支持redo和undo,但不支持编辑文字,其实就是加个富文本但不能编辑。我刚拿到需求想,这不是很简单的需求,但后来发现这就是个坑。。
1、刚一开始,我用了项目原本使用的富文本编辑器 vue-html5-editor ,但发现并不能实现不编辑文字又能改样式,这时的我还没有意识到事情的严重性,以为只是个例,于是我又找了另一款富文本编辑器。
2、 wangeditor 是一款国人开发的富文本编辑器,轻量、强大,但它也不支持不编辑文字又能改样式,于是我觉得我得明白这些编辑器的原理到底是怎样的。
3、在查看了源码后,我终于明白上面的两款编辑器为什么不能不编辑文字又能改样式。上面的编辑器实现原理是根据 contenteditable 这个属性来使一个div变为可编辑状态,并且利用 execCommand 方法实现粗体、字体等一系列样式实现,但这个方法只在div是可编辑状态时可用,所以当我把contenteditable改为false后,execCommand就不管用了,所以才改不了样式。
4、知道了这点后,我明白应该寻找一款不依赖execCommand的富文本编辑器,我找到了 tiptap 和 ckeditor5 。
5、在对这两款进行了一定研究后,我发现了另一问题--它们会清除元素中的自定义属性。
例如这样的数据,会变为这样
这是我不能接受的,我开始了漫长的寻找解决办法之路。
经过了很长时间的看源码--查资料--看源码,终于解决了这个问题。
我使用的是 element-tiptap ,其实直接使用tiptap也可以,但因为我的项目就是使用的element-ui,所以我直接使用了这个库。
首先需要
然后
具体的我就不说了,我主要说自己写的span这个节点
attrs里就是需要保留的属性,parseDOM就是解析dom时所触发的方法,可以在这里获取到属性,在toDOM生成DOM是把这些属性加上。
======================================================================================》
最后我还是使用了quill,因为delta。。。
quill配置如下:
后台的数据处理与实时联动用到了ShareDB和richText
处理数据时使用 wss动态给到delta数据,然后使用setContents显示到页面上
使用text-change监听事件监听文本改动并返回
记录一下。
做过Web开发的朋友相信都使用过富文本编辑器,比较出名的CuteEditor和CKEditor很多人应该已经使用过,在功能强大的同时需要加载的东西也变得很多。下面要推荐的两款富文本编辑器都是使用JS编写,使用简单,非常轻量级。
1、NicEditor
NicEdit是一个轻量级,跨平台的Inline Content Editor。NicEdit能够让任何 element/div变成可编辑或者能够把标准的TextArea转换成富文本编辑器。
NicEdit是我见过最轻量级的富文本编辑器,总共就一个JS文件和一张
使用也非常简单,只需在页面中添加简单的JS代码就可以将TextBox或是TextArea控件转换成富文本编辑器
2、KindEditor
KindEditor是一套开源的HTML可视化编辑器,主要用于让用户在网站上获得所见即所得编辑效果,兼容IE、Firefox、Chrome、Safari、Opera等主流浏览器。 KindEditor使用JavaScript编写,可以无缝的与Java、NET、PHP、ASP等程序接合。
这是我使用full版设置给你参考下:
CKEDITOReditorConfig = function( config )
{
configplugins = 'about,a11yhelp,basicstyles,bidi,blockquote,clipboard,colorbutton,colordialog,contextmenu,dialogadvtab,div,elementspath,enterkey,entities,filebrowser,find,flash,floatingspace,font,format,forms,horizontalrule,htmlwriter,image,iframe,indentlist,indentblock,justify,language,link,list,liststyle,magicline,maximize,newpage,pagebreak,pastefromword,pastetext,preview,print,removeformat,resize,save,scayt,selectall,showblocks,showborders,smiley,sourcearea,specialchar,stylescombo,tab,table,tabletools,templates,toolbar,undo,wsc,wysiwygarea';
configtoolbarGroups = [
{ name: 'document', groups: [ 'mode', 'document', 'doctools' ] },
{ name: 'clipboard', groups: [ 'clipboard', 'undo' ] },
{ name: 'editing', groups: [ 'find', 'selection', 'spellchecker' ] },
{ name: 'forms' },
{ name: 'links' },
{ name: 'insert' },
'/',
{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
{ name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] },
{ name: 'styles' },
{ name: 'colors' },
{ name: 'tools' },
{ name: 'others' },
{ name: 'about' }
];
};
具体哪些按钮你可以自由删除。
建议两者都不用,用百 度的ueditor1_2_3_0-utf8-net
ckeditor集成ckfinder不好配置。(个人未配置成功了,但ckeditor很实用)
kindeditor易用,拖个dll放个文件夹就行,但生成的html标签阅读性差,跟ckeditor比起来
生成了太多不需要html标签不简洁
ueditor功能超强大易用,详细的试用自己去官 网看看。
以上就是关于有C#富文本开发的自定义控件吗,跟网页版类似的文本编辑器,急需要全部的内容,包括:有C#富文本开发的自定义控件吗,跟网页版类似的文本编辑器,急需要、关于实现quill(富文本编辑器)初始化数据时自定义属性被清除的问题、有哪些比较轻的富文本编辑器等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)